From f36310057a8d172e47f48fca686cbacc3cf71db3 Mon Sep 17 00:00:00 2001 From: etudiant Date: Sat, 21 Jan 2023 09:54:25 +0100 Subject: [PATCH 1/2] Simple Commit --- cat_cafe/Controllers/BarsController.cs | 26 ++++++++++++++++---------- cat_cafe/Dto/BarDto.cs | 13 +++++++++++++ cat_cafe/Mappers/BarMapper.cs | 15 +++++++++++++++ cat_cafe/log.txt | 1 + 4 files changed, 45 insertions(+), 10 deletions(-) create mode 100644 cat_cafe/Dto/BarDto.cs create mode 100644 cat_cafe/Mappers/BarMapper.cs create mode 100644 cat_cafe/log.txt diff --git a/cat_cafe/Controllers/BarsController.cs b/cat_cafe/Controllers/BarsController.cs index 26b907d..6466b83 100644 --- a/cat_cafe/Controllers/BarsController.cs +++ b/cat_cafe/Controllers/BarsController.cs @@ -7,6 +7,8 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using cat_cafe.Entities; using cat_cafe.Repositories; +using AutoMapper; +using cat_cafe.Dto; namespace cat_cafe.Controllers { @@ -15,22 +17,25 @@ namespace cat_cafe.Controllers public class BarsController : ControllerBase { private readonly BarContext _context; + private readonly IMapper _mapper; - public BarsController(BarContext context) + public BarsController(BarContext context,IMapper mapper) { _context = context; + _mapper = mapper; } // GET: api/Bars [HttpGet] - public async Task>> GetBars() + public async Task>> GetBars() { - return await _context.Bars.ToListAsync(); + var bars = await _context.Bars.ToListAsync(); + return _mapper.Map>(bars); } // GET: api/Bars/5 [HttpGet("{id}")] - public async Task> GetBar(long id) + public async Task> GetBar(long id) { var bar = await _context.Bars.FindAsync(id); @@ -39,19 +44,19 @@ namespace cat_cafe.Controllers return NotFound(); } - return bar; + return _mapper.Map(bar); } // PUT: api/Bars/5 // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 [HttpPut("{id}")] - public async Task PutBar(long id, Bar bar) + public async Task PutBar(long id, BarDto barDto) { - if (id != bar.Id) + if (id != barDto.Id) { return BadRequest(); } - + Bar bar = _mapper.Map(barDto); _context.Entry(bar).State = EntityState.Modified; try @@ -76,12 +81,13 @@ namespace cat_cafe.Controllers // POST: api/Bars // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 [HttpPost] - public async Task> PostBar(Bar bar) + public async Task> PostBar(BarDto barDto) { + Bar bar = _mapper.Map(barDto); _context.Bars.Add(bar); await _context.SaveChangesAsync(); - return CreatedAtAction("GetBar", new { id = bar.Id }, bar); + return CreatedAtAction("GetBar", new { id = barDto.Id }, _mapper.Map(bar)); } // DELETE: api/Bars/5 diff --git a/cat_cafe/Dto/BarDto.cs b/cat_cafe/Dto/BarDto.cs new file mode 100644 index 0000000..85173dd --- /dev/null +++ b/cat_cafe/Dto/BarDto.cs @@ -0,0 +1,13 @@ +using System; +using cat_cafe.Entities; + +namespace cat_cafe.Dto +{ + public class BarDto + { + public long Id { get; set; } + public string? Name { get; set; } + public List cats { get; set; } = new List(); + } +} + diff --git a/cat_cafe/Mappers/BarMapper.cs b/cat_cafe/Mappers/BarMapper.cs new file mode 100644 index 0000000..9a5e110 --- /dev/null +++ b/cat_cafe/Mappers/BarMapper.cs @@ -0,0 +1,15 @@ +using System; +using AutoMapper; +using cat_cafe.Entities; + +namespace cat_cafe.Mappers +{ + public class BarMapper:Profile + { + public BarMapper() + { + CreateMap().ReverseMap(); + } + } +} + diff --git a/cat_cafe/log.txt b/cat_cafe/log.txt new file mode 100644 index 0000000..839ce7d --- /dev/null +++ b/cat_cafe/log.txt @@ -0,0 +1 @@ +2023-01-21 09:37:45.148 +01:00 [INF] program start -- 2.36.3 From c06daa3ce9f53dcb26912c05f5fa392062b337e7 Mon Sep 17 00:00:00 2001 From: etudiant Date: Sat, 28 Jan 2023 10:05:12 +0100 Subject: [PATCH 2/2] REST BAR CAT --- cat_cafe/Controllers/BarsController.cs | 32 ++++++++++++++++++++++---- cat_cafe/Dto/CatDto.cs | 1 + cat_cafe/Mappers/BarMapper.cs | 5 +++- cat_cafe/log.txt | 27 ++++++++++++++++++++++ 4 files changed, 59 insertions(+), 6 deletions(-) diff --git a/cat_cafe/Controllers/BarsController.cs b/cat_cafe/Controllers/BarsController.cs index 6466b83..db7c6bc 100644 --- a/cat_cafe/Controllers/BarsController.cs +++ b/cat_cafe/Controllers/BarsController.cs @@ -9,6 +9,8 @@ using cat_cafe.Entities; using cat_cafe.Repositories; using AutoMapper; using cat_cafe.Dto; +using System.Collections; +using System.Xml.Linq; namespace cat_cafe.Controllers { @@ -18,18 +20,28 @@ namespace cat_cafe.Controllers { private readonly BarContext _context; private readonly IMapper _mapper; + private readonly ILogger _logger; - public BarsController(BarContext context,IMapper mapper) + public BarsController(BarContext context,IMapper mapper, ILogger logger) { _context = context; _mapper = mapper; + _logger = logger; } // GET: api/Bars [HttpGet] public async Task>> GetBars() { - var bars = await _context.Bars.ToListAsync(); + var bars = _context.Bars + .Include(a => a.cats) + .Select(a => new Bar + { + Id = a.Id, + Name = a.Name, + cats = a.cats.Select(p => new Cat { Name = p.Name, Age = p.Age, Id= p.Id}).ToList() + }) + .ToList(); return _mapper.Map>(bars); } @@ -37,14 +49,21 @@ namespace cat_cafe.Controllers [HttpGet("{id}")] public async Task> GetBar(long id) { - var bar = await _context.Bars.FindAsync(id); + var bar = _context.Bars.Include(p => p.cats) + .Select(a => new Bar + { + Id = a.Id, + Name = a.Name, + cats = a.cats.Select(p => new Cat { Name = p.Name, Age = p.Age, Id = p.Id }).ToList() + + }).FirstOrDefaultAsync(p => p.Id == id); if (bar == null) { return NotFound(); } - return _mapper.Map(bar); + return _mapper.Map(bar.Result); } // PUT: api/Bars/5 @@ -83,7 +102,10 @@ namespace cat_cafe.Controllers [HttpPost] public async Task> PostBar(BarDto barDto) { - Bar bar = _mapper.Map(barDto); + // Bar bar = _mapper.Map(barDto); + var bar = _mapper.Map(barDto); + + _context.Bars.Add(bar); await _context.SaveChangesAsync(); diff --git a/cat_cafe/Dto/CatDto.cs b/cat_cafe/Dto/CatDto.cs index 86cf631..354e814 100644 --- a/cat_cafe/Dto/CatDto.cs +++ b/cat_cafe/Dto/CatDto.cs @@ -5,5 +5,6 @@ namespace cat_cafe.Dto { public long Id { get; set; } public string? Name { get; set; } + public int Age { get; set; } } } diff --git a/cat_cafe/Mappers/BarMapper.cs b/cat_cafe/Mappers/BarMapper.cs index 9a5e110..cb89d24 100644 --- a/cat_cafe/Mappers/BarMapper.cs +++ b/cat_cafe/Mappers/BarMapper.cs @@ -1,5 +1,6 @@ using System; using AutoMapper; +using cat_cafe.Dto; using cat_cafe.Entities; namespace cat_cafe.Mappers @@ -8,7 +9,9 @@ namespace cat_cafe.Mappers { public BarMapper() { - CreateMap().ReverseMap(); + + // var mapper = config.CreateMapper(); + CreateMap().ReverseMap(); } } } diff --git a/cat_cafe/log.txt b/cat_cafe/log.txt index 839ce7d..b50aa8e 100644 --- a/cat_cafe/log.txt +++ b/cat_cafe/log.txt @@ -1 +1,28 @@ 2023-01-21 09:37:45.148 +01:00 [INF] program start +2023-01-28 08:16:52.320 +01:00 [INF] program start +2023-01-28 08:30:32.772 +01:00 [INF] program start +2023-01-28 08:31:51.147 +01:00 [INF] program start +2023-01-28 08:35:42.533 +01:00 [INF] program start +2023-01-28 08:37:29.403 +01:00 [INF] program start +2023-01-28 08:38:02.513 +01:00 [INF] program start +2023-01-28 08:38:24.151 +01:00 [INF] program start +2023-01-28 08:39:11.319 +01:00 [INF] program start +2023-01-28 08:54:25.005 +01:00 [INF] program start +2023-01-28 08:55:19.776 +01:00 [INF] program start +2023-01-28 08:57:05.150 +01:00 [INF] POST => post customer +2023-01-28 08:57:05.326 +01:00 [INF] POST => 201 cat_cafe.Entities.Customer {"Id":1,"FullName":"string","Age":0} +2023-01-28 08:57:13.908 +01:00 [INF] GET => get All customers +2023-01-28 08:57:13.997 +01:00 [INF] GET => 200 System.Collections.Generic.List`1[cat_cafe.Entities.Customer] length[1] +2023-01-28 08:58:25.856 +01:00 [INF] program start +2023-01-28 09:05:05.071 +01:00 [INF] program start +2023-01-28 09:13:54.542 +01:00 [INF] program start +2023-01-28 09:17:54.058 +01:00 [INF] program start +2023-01-28 09:24:15.797 +01:00 [INF] program start +2023-01-28 09:26:42.943 +01:00 [INF] program start +2023-01-28 09:31:25.523 +01:00 [INF] program start +2023-01-28 09:38:42.245 +01:00 [INF] program start +2023-01-28 09:40:40.846 +01:00 [INF] program start +2023-01-28 09:49:33.194 +01:00 [INF] program start +2023-01-28 09:52:36.098 +01:00 [INF] program start +2023-01-28 09:56:02.340 +01:00 [INF] program start +2023-01-28 09:57:05.155 +01:00 [INF] program start -- 2.36.3