diff --git a/Sources/ApiDePaul/ApiDePaul.csproj b/Sources/ApiDePaul/ApiDePaul.csproj index eb51bcd..d21f91b 100644 --- a/Sources/ApiDePaul/ApiDePaul.csproj +++ b/Sources/ApiDePaul/ApiDePaul.csproj @@ -12,6 +12,7 @@ + diff --git a/Sources/ApiDePaul/Controllers/ChampionController.cs b/Sources/ApiDePaul/Controllers/ChampionController.cs index 694d211..02ce262 100644 --- a/Sources/ApiDePaul/Controllers/ChampionController.cs +++ b/Sources/ApiDePaul/Controllers/ChampionController.cs @@ -15,9 +15,10 @@ namespace ApiDePaul.Controllers private readonly ILogger _logger; - public ChampionController(ILogger logger) + public ChampionController(ILogger logger,IDataManager datamgr) { _logger = logger; + this.donnees = datamgr; } [HttpGet] @@ -92,16 +93,16 @@ namespace ApiDePaul.Controllers return CreatedAtAction(nameof(GetChampId), new { id = donnees.ChampionsMgr.GetNbItems().Result - 1 }, ca.ChampToDto()); } - - [HttpPost("Ajouter")] + /* en fait cet ajouter sert à rien, vu que la liste peut contenir un champion + [HttpPost("AjouterUnSeul")] public async Task PostChamp([FromBody] ChampionDto c) { Champion ca = c.DtoToChamp(); //return Ok(await donnees.ChampionsMgr.AddItem(ca)); await donnees.ChampionsMgr.AddItem(ca); return CreatedAtAction(nameof(GetChampId), new { id = donnees.ChampionsMgr.GetNbItems().Result - 1 }, ca.ChampToDto()); - } - [HttpPost("AjouterPlus")] + }*/ + [HttpPost("Ajouter")] public async Task PostChamps([FromBody] List lc) { foreach(ChampionDto c in lc) @@ -127,16 +128,16 @@ namespace ApiDePaul.Controllers return BadRequest(); } - - [HttpPut("{id}/Modifier")] + /* pareil que pour ajouter, pas besoin de faire qu'un seul champion quand une liste suffit + [HttpPut("{id}/ModifierUnSeul")] public async Task PutChamp(int id, [FromBody] ChampionDto c) { IEnumerable oldChamp = await donnees.ChampionsMgr.GetItems(id, 1); Champion champion1 = oldChamp.First(); Champion champion2 = c.DtoToChamp(); return Ok(await donnees.ChampionsMgr.UpdateItem(champion1, champion2)); - } - [HttpPut("{id}/ModifierPlus")] + }*/ + [HttpPut("{id}/Modifier")] public async Task PutChamps(int id, [FromBody] List lc) { IEnumerable oldChamp = await donnees.ChampionsMgr.GetItems(id, lc.Count()); diff --git a/Sources/ApiDePaul/Controllers/RuneController.cs b/Sources/ApiDePaul/Controllers/RuneController.cs new file mode 100644 index 0000000..0690758 --- /dev/null +++ b/Sources/ApiDePaul/Controllers/RuneController.cs @@ -0,0 +1,37 @@ +using ApiDePaul.Conversion; +using ApiDePaul.DTO; +using Microsoft.AspNetCore.Mvc; +using Model; +using StubLib; +using System.Collections.Generic; +using System.Diagnostics; + +namespace ApiDePaul.Controllers +{ + [ApiController] + [Route("[controller]")] + public class RuneController : ControllerBase + { + IDataManager donnees = new StubData(); + + private readonly ILogger _logger; + + public RuneController(ILogger logger, IDataManager datamgr) + { + _logger = logger; + //this.donnees = datamgr; + } + + [HttpGet] + public async Task> GetRunes() + { + IEnumerable lrun = await donnees.RunesMgr.GetItems(0, donnees.RunesMgr.GetNbItems().Result); + + List runes = new List(); + + lrun.ToList().ForEach(r => runes.Add(r.RuneToDto())); + + return Ok(runes); + } + } +} \ No newline at end of file diff --git a/Sources/ApiDePaul/Conversion/ChampionMapping.cs b/Sources/ApiDePaul/Conversion/ChampionMapping.cs index 4b86fd4..e5dcbad 100644 --- a/Sources/ApiDePaul/Conversion/ChampionMapping.cs +++ b/Sources/ApiDePaul/Conversion/ChampionMapping.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Reflection.PortableExecutable; using System.Text; using System.Threading.Tasks; +using ApiDePaul.Conversion; using ApiDePaul.DTO; using Model; using static System.Net.Mime.MediaTypeNames; @@ -24,13 +25,16 @@ namespace ApiDePaul { champ.Characteristics.Add(new Tuple(ch.Key, ch.Value)); } - //Characteristics = c.Characteristics.ToDictionary(x => x.Key, x => x.Value) + foreach(var sk in c.Skills) + { + champ.Skills.Add(sk.SkillToDto()); + } return champ; } public static Champion DtoToChamp(this ChampionDto c) { Champion champ = new Champion(c.Name); - string[] classes = { "Unknown", "Assassin", "Fighter", "Mage", "Marksman", "Support", "Tank" }; + var classes = Enum.GetNames(typeof(ChampionClass)); if (classes.ToList().Contains(c.Class)) { champ.Class=(ChampionClass)Enum.Parse(typeof(ChampionClass), c.Class); @@ -45,7 +49,7 @@ namespace ApiDePaul foreach(var s in c.Skills) { - champ.AddSkill(s); + champ.AddSkill(s.DtoToSkill()); } champ.AddCharacteristics(c.Characteristics.ToArray()); /* diff --git a/Sources/ApiDePaul/Conversion/RuneMapping.cs b/Sources/ApiDePaul/Conversion/RuneMapping.cs new file mode 100644 index 0000000..51a68a5 --- /dev/null +++ b/Sources/ApiDePaul/Conversion/RuneMapping.cs @@ -0,0 +1,38 @@ +using ApiDePaul.DTO; +using Model; + +namespace ApiDePaul.Conversion +{ + public static class RuneMapping + { + public static RuneDto RuneToDto(this Rune r) + { + RuneDto run = new RuneDto(); + run.Name = r.Name; + run.Description = r.Description; + run.Icon = r.Icon; + run.Image = r.Image.ToString(); + run.Family = r.Family.ToString(); + return run; + } + public static Rune DtoToRune(this RuneDto r) + { + RuneFamily fam; + string[] families = { "Unknown", "Precision", "Domination" }; + if (families.ToList().Contains(r.Family)) + { + fam = (RuneFamily)Enum.Parse(typeof(RuneFamily), r.Family); + } + else + { + fam = 0; + } + Rune run = new Rune(r.Name, fam); + run.Icon = r.Icon; + run.Image = new LargeImage(r.Image); + run.Description = r.Description; + + return run; + } + } +} \ No newline at end of file diff --git a/Sources/ApiDePaul/Conversion/SkillMapping.cs b/Sources/ApiDePaul/Conversion/SkillMapping.cs new file mode 100644 index 0000000..52e88d4 --- /dev/null +++ b/Sources/ApiDePaul/Conversion/SkillMapping.cs @@ -0,0 +1,33 @@ +using ApiDePaul.DTO; +using Model; + +namespace ApiDePaul.Conversion +{ + public static class SkillMapping + { + public static SkillDto SkillToDto(this Skill s) + { + SkillDto ski = new SkillDto(); + ski.Name = s.Name; + ski.Type = s.Type.ToString(); + ski.Description = s.Description; + return ski; + } + public static Skill DtoToSkill(this SkillDto ski) + { + var types = Enum.GetNames(typeof(SkillType)).ToList(); + SkillType type; + if (types.Contains(ski.Type.ToString())) + { + type = (SkillType)Enum.Parse(typeof(SkillType), ski.Type); + } + else + { + type = 0; + } + Skill s = new Skill(ski.Name, type,ski.Description); + + return s; + } + } +} diff --git a/Sources/ApiDePaul/DTO/ChampionDto.cs b/Sources/ApiDePaul/DTO/ChampionDto.cs index dc8ad8a..5c0128d 100644 --- a/Sources/ApiDePaul/DTO/ChampionDto.cs +++ b/Sources/ApiDePaul/DTO/ChampionDto.cs @@ -12,6 +12,6 @@ namespace ApiDePaul.DTO public string Image { get; set; } public List Skins { get; set; } public List> Characteristics { get; set; } - public HashSet Skills { get; set; } + public List Skills { get; set; } } } diff --git a/Sources/ApiDePaul/DTO/RuneDto.cs b/Sources/ApiDePaul/DTO/RuneDto.cs new file mode 100644 index 0000000..289f7e9 --- /dev/null +++ b/Sources/ApiDePaul/DTO/RuneDto.cs @@ -0,0 +1,11 @@ +namespace ApiDePaul.DTO +{ + public class RuneDto + { + public string Name { get; set; } + public string Description { get; set; } + public string Family { get; set; } + public string Icon { get; set; } + public string Image { get; set; } + } +} diff --git a/Sources/ApiDePaul/DTO/SkillDto.cs b/Sources/ApiDePaul/DTO/SkillDto.cs new file mode 100644 index 0000000..f0403a5 --- /dev/null +++ b/Sources/ApiDePaul/DTO/SkillDto.cs @@ -0,0 +1,9 @@ +namespace ApiDePaul.DTO +{ + public class SkillDto + { + public string Name { get; set; } + public string Type { get; set; } + public string Description { get; set; } + } +} diff --git a/Sources/ApiDePaul/Program.cs b/Sources/ApiDePaul/Program.cs index a3ec0d0..ffe4a40 100644 --- a/Sources/ApiDePaul/Program.cs +++ b/Sources/ApiDePaul/Program.cs @@ -1,5 +1,6 @@ using Model; using StubLib; +using TrucAuMilieu; var builder = WebApplication.CreateBuilder(args); @@ -9,7 +10,8 @@ builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); -builder.Services.AddScoped(); +//builder.Services.AddScoped(); +builder.Services.AddScoped(); var app = builder.Build(); // Configure the HTTP request pipeline. diff --git a/Sources/ApiDePaul/laBdd.db b/Sources/ApiDePaul/laBdd.db new file mode 100644 index 0000000..ff72a77 Binary files /dev/null and b/Sources/ApiDePaul/laBdd.db differ diff --git a/Sources/ApiDePaul/laBdd.db-shm b/Sources/ApiDePaul/laBdd.db-shm new file mode 100644 index 0000000..fe9ac28 Binary files /dev/null and b/Sources/ApiDePaul/laBdd.db-shm differ diff --git a/Sources/ApiDePaul/laBdd.db-wal b/Sources/ApiDePaul/laBdd.db-wal new file mode 100644 index 0000000..e69de29 diff --git a/Sources/LeagueOfLegends.sln b/Sources/LeagueOfLegends.sln index 9387f8a..518aca1 100644 --- a/Sources/LeagueOfLegends.sln +++ b/Sources/LeagueOfLegends.sln @@ -32,6 +32,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TrucAuMilieu", "TrucAuMilie EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApiDePaul", "ApiDePaul\ApiDePaul.csproj", "{245F7BAC-8487-4510-8066-D12B5B2B816B}" ProjectSection(ProjectDependencies) = postProject + {00B54DCE-F7B5-4C3A-AC91-EF6BAB1AD36C} = {00B54DCE-F7B5-4C3A-AC91-EF6BAB1AD36C} {B01D7EF2-2D64-409A-A29A-61FB7BB7A9DB} = {B01D7EF2-2D64-409A-A29A-61FB7BB7A9DB} EndProjectSection EndProject diff --git a/Sources/TrucAuMilieu/TrucAuMilieu.csproj b/Sources/TrucAuMilieu/TrucAuMilieu.csproj index bf2fdb7..446c0c5 100644 --- a/Sources/TrucAuMilieu/TrucAuMilieu.csproj +++ b/Sources/TrucAuMilieu/TrucAuMilieu.csproj @@ -7,7 +7,6 @@ -