From a2718e4ba72c7fca2a82fc97b03dd67f498e01ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Andr=C3=A9?= Date: Wed, 25 Sep 2019 19:38:52 +0200 Subject: [PATCH] Add AutoMapper and update the interface of business services --- .../Interface/IAircraftService.cs | 6 ++++++ .../Interface/IDropZoneService.cs | 6 ++++++ .../Interface/IJumpService.cs | 6 ++++++ .../Interface/IJumpTypeService.cs | 12 +++++++++++- Back/skydiveLogs-api.Model/Aircraft.cs | 2 +- Back/skydiveLogs-api.Model/DropZone.cs | 2 +- Back/skydiveLogs-api.Model/Gear.cs | 2 +- Back/skydiveLogs-api.Model/Jump.cs | 2 +- Back/skydiveLogs-api.Model/JumpType.cs | 2 +- .../Controllers/AircraftController.cs | 14 +++++++++++--- .../Controllers/DropZoneController.cs | 14 +++++++++++--- .../Controllers/JumpController.cs | 14 +++++++++++--- .../Controllers/JumpTypeController.cs | 14 +++++++++++--- Back/skydiveLogs-api/Mapper/ModelProfile.cs | 18 ++++++++++++++++++ Back/skydiveLogs-api/Program.cs | 3 +-- Back/skydiveLogs-api/Startup.cs | 4 ++++ Back/skydiveLogs-api/skydiveLogs-api.csproj | 1 + 17 files changed, 102 insertions(+), 20 deletions(-) create mode 100644 Back/skydiveLogs-api/Mapper/ModelProfile.cs diff --git a/Back/skydiveLogs-api.Business/Interface/IAircraftService.cs b/Back/skydiveLogs-api.Business/Interface/IAircraftService.cs index e039cae..8078347 100644 --- a/Back/skydiveLogs-api.Business/Interface/IAircraftService.cs +++ b/Back/skydiveLogs-api.Business/Interface/IAircraftService.cs @@ -1,10 +1,16 @@ using System; using System.Collections.Generic; using System.Text; +using skydiveLogs_api.Model; namespace skydiveLogs_api.Business.Interface { public interface IAircraftService { + IEnumerable GetAllAircrafts(); + skydiveLogs_api.DataContract.AircraftResp GetAircraftById(int id); + void AddNewAircraft(Aircraft aircraft); + void UpdateAircraft(int id, Aircraft aircraft); + void DeleteAircraftById(int id); } } diff --git a/Back/skydiveLogs-api.Business/Interface/IDropZoneService.cs b/Back/skydiveLogs-api.Business/Interface/IDropZoneService.cs index 25323bc..0abf0ef 100644 --- a/Back/skydiveLogs-api.Business/Interface/IDropZoneService.cs +++ b/Back/skydiveLogs-api.Business/Interface/IDropZoneService.cs @@ -1,10 +1,16 @@ using System; using System.Collections.Generic; using System.Text; +using skydiveLogs_api.Model; namespace skydiveLogs_api.Business.Interface { public interface IDropZoneService { + IEnumerable GetAllDzs(); + skydiveLogs_api.DataContract.DropZoneResp GetDzById(int id); + void DeleteDzById(int id); + void UpdateDz(int id, DropZone dropZone); + void AddNewDz(DropZone dropZone); } } diff --git a/Back/skydiveLogs-api.Business/Interface/IJumpService.cs b/Back/skydiveLogs-api.Business/Interface/IJumpService.cs index 9e30fe3..a987f9c 100644 --- a/Back/skydiveLogs-api.Business/Interface/IJumpService.cs +++ b/Back/skydiveLogs-api.Business/Interface/IJumpService.cs @@ -1,10 +1,16 @@ using System; using System.Collections.Generic; using System.Text; +using skydiveLogs_api.Model; namespace skydiveLogs_api.Business.Interface { public interface IJumpService { + IEnumerable GetAllJumps(); + skydiveLogs_api.DataContract.JumpResp GetJumpById(int id); + void AddNewJump(Jump jump); + void UpdateJump(int id, Jump jump); + void DeleteJumpById(int id); } } diff --git a/Back/skydiveLogs-api.Business/Interface/IJumpTypeService.cs b/Back/skydiveLogs-api.Business/Interface/IJumpTypeService.cs index 8b2326c..17eb098 100644 --- a/Back/skydiveLogs-api.Business/Interface/IJumpTypeService.cs +++ b/Back/skydiveLogs-api.Business/Interface/IJumpTypeService.cs @@ -1,4 +1,5 @@ -using System; +using skydiveLogs_api.Model; +using System; using System.Collections.Generic; using System.Text; @@ -6,5 +7,14 @@ namespace skydiveLogs_api.Business.Interface { public interface IJumpTypeService { + IEnumerable GetAllJumpTypes(); + + JumpType GetJumpTypeById(int id); + + void AddNewJumpType(JumpType value); + + void UpdateJumpType(int id, JumpType value); + + void DeleteJumpTypeById(int id); } } diff --git a/Back/skydiveLogs-api.Model/Aircraft.cs b/Back/skydiveLogs-api.Model/Aircraft.cs index dd68ced..5924501 100644 --- a/Back/skydiveLogs-api.Model/Aircraft.cs +++ b/Back/skydiveLogs-api.Model/Aircraft.cs @@ -4,7 +4,7 @@ using System.Text; namespace skydiveLogs_api.Model { - class Aircraft + public class Aircraft { } } diff --git a/Back/skydiveLogs-api.Model/DropZone.cs b/Back/skydiveLogs-api.Model/DropZone.cs index d1238b5..12f9e82 100644 --- a/Back/skydiveLogs-api.Model/DropZone.cs +++ b/Back/skydiveLogs-api.Model/DropZone.cs @@ -4,7 +4,7 @@ using System.Text; namespace skydiveLogs_api.Model { - class DropZone + public class DropZone { } } diff --git a/Back/skydiveLogs-api.Model/Gear.cs b/Back/skydiveLogs-api.Model/Gear.cs index 997aad4..61ef332 100644 --- a/Back/skydiveLogs-api.Model/Gear.cs +++ b/Back/skydiveLogs-api.Model/Gear.cs @@ -4,7 +4,7 @@ using System.Text; namespace skydiveLogs_api.Model { - class Gear + public class Gear { } } diff --git a/Back/skydiveLogs-api.Model/Jump.cs b/Back/skydiveLogs-api.Model/Jump.cs index 62cb300..268991f 100644 --- a/Back/skydiveLogs-api.Model/Jump.cs +++ b/Back/skydiveLogs-api.Model/Jump.cs @@ -4,7 +4,7 @@ using System.Text; namespace skydiveLogs_api.Model { - class Jump + public class Jump { } } diff --git a/Back/skydiveLogs-api.Model/JumpType.cs b/Back/skydiveLogs-api.Model/JumpType.cs index c1cea4d..743626b 100644 --- a/Back/skydiveLogs-api.Model/JumpType.cs +++ b/Back/skydiveLogs-api.Model/JumpType.cs @@ -4,7 +4,7 @@ using System.Text; namespace skydiveLogs_api.Model { - class JumpType + public class JumpType { } } diff --git a/Back/skydiveLogs-api/Controllers/AircraftController.cs b/Back/skydiveLogs-api/Controllers/AircraftController.cs index 86cdf0a..4ac2ae4 100644 --- a/Back/skydiveLogs-api/Controllers/AircraftController.cs +++ b/Back/skydiveLogs-api/Controllers/AircraftController.cs @@ -2,10 +2,12 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using AutoMapper; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using skydiveLogs_api.Business.Interface; using skydiveLogs_api.DataContract; +using skydiveLogs_api.Model; namespace skydiveLogs_api.Controllers { @@ -13,43 +15,49 @@ namespace skydiveLogs_api.Controllers [ApiController] public class AircraftController : ControllerBase { - public AircraftController(IAircraftService aircraftService) + public AircraftController(IAircraftService aircraftService, + IMapper mapper) { _aircraftService = aircraftService; + _mapper = mapper; } // GET: api/Aircraft [HttpGet] public IEnumerable Get() { - return new AircraftResp[] { "value1", "value2" }; + return _aircraftService.GetAllAircrafts(); } // GET: api/Aircraft/5 [HttpGet("{id}", Name = "Get")] public AircraftResp Get(int id) { - return "value"; + return _aircraftService.GetAircraftById(id); } // POST: api/Aircraft [HttpPost] public void Post([FromBody] AircraftReq value) { + _aircraftService.AddNewAircraft(_mapper.Map(value)); } // PUT: api/Aircraft/5 [HttpPut("{id}")] public void Put(int id, [FromBody] AircraftReq value) { + _aircraftService.UpdateAircraft(id, _mapper.Map(value)); } // DELETE: api/ApiWithActions/5 [HttpDelete("{id}")] public void Delete(int id) { + _aircraftService.DeleteAircraftById(id); } private readonly IAircraftService _aircraftService; + private readonly IMapper _mapper; } } diff --git a/Back/skydiveLogs-api/Controllers/DropZoneController.cs b/Back/skydiveLogs-api/Controllers/DropZoneController.cs index 055432c..14617e7 100644 --- a/Back/skydiveLogs-api/Controllers/DropZoneController.cs +++ b/Back/skydiveLogs-api/Controllers/DropZoneController.cs @@ -6,6 +6,8 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using skydiveLogs_api.Business.Interface; using skydiveLogs_api.DataContract; +using AutoMapper; +using skydiveLogs_api.Model; namespace skydiveLogs_api.Controllers { @@ -13,43 +15,49 @@ namespace skydiveLogs_api.Controllers [ApiController] public class DropZoneController : ControllerBase { - public DropZoneController(IDropZoneService dropZoneService) + public DropZoneController(IDropZoneService dropZoneService, + IMapper mapper) { _dropZoneService = dropZoneService; + _mapper = mapper; } // GET: api/DropZone [HttpGet] public IEnumerable Get() { - return new DropZoneResp[] { "value1", "value2" }; + return _dropZoneService.GetAllDzs(); } // GET: api/DropZone/5 [HttpGet("{id}", Name = "Get")] public DropZoneResp Get(int id) { - return "value"; + return _dropZoneService.GetDzById(id); } // POST: api/DropZone [HttpPost] public void Post([FromBody] DropZoneReq value) { + _dropZoneService.AddNewDz(_mapper.Map(value)); } // PUT: api/DropZone/5 [HttpPut("{id}")] public void Put(int id, [FromBody] DropZoneReq value) { + _dropZoneService.UpdateDz(id, _mapper.Map(value)); } // DELETE: api/ApiWithActions/5 [HttpDelete("{id}")] public void Delete(int id) { + _dropZoneService.DeleteDzById(id); } private readonly IDropZoneService _dropZoneService; + private readonly IMapper _mapper; } } diff --git a/Back/skydiveLogs-api/Controllers/JumpController.cs b/Back/skydiveLogs-api/Controllers/JumpController.cs index 4f0686b..bd5dc89 100644 --- a/Back/skydiveLogs-api/Controllers/JumpController.cs +++ b/Back/skydiveLogs-api/Controllers/JumpController.cs @@ -6,6 +6,8 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using skydiveLogs_api.Business.Interface; using skydiveLogs_api.DataContract; +using AutoMapper; +using skydiveLogs_api.Model; namespace skydiveLogs_api.Controllers { @@ -13,43 +15,49 @@ namespace skydiveLogs_api.Controllers [ApiController] public class JumpController : ControllerBase { - public JumpController(IJumpService jumpService) + public JumpController(IJumpService jumpService, + IMapper mapper) { _jumpService = jumpService; + _mapper = mapper; } // GET: api/Jump [HttpGet] public IEnumerable Get() { - return new JumpResp[] { "value1", "value2" }; + return _jumpService.GetAllJumps(); } // GET: api/Jump/5 [HttpGet("{id}", Name = "Get")] public JumpResp Get(int id) { - return "value"; + return _jumpService.GetJumpById(id); } // POST: api/Jump [HttpPost] public void Post([FromBody] JumpReq value) { + _jumpService.AddNewJump(_mapper.Map(value)); } // PUT: api/Jump/5 [HttpPut("{id}")] public void Put(int id, [FromBody] JumpReq value) { + _jumpService.UpdateJump(id, _mapper.Map(value)); } // DELETE: api/ApiWithActions/5 [HttpDelete("{id}")] public void Delete(int id) { + _jumpService.DeleteJumpById(id); } private readonly IJumpService _jumpService; + private readonly IMapper _mapper; } } diff --git a/Back/skydiveLogs-api/Controllers/JumpTypeController.cs b/Back/skydiveLogs-api/Controllers/JumpTypeController.cs index e0bb826..39d60ff 100644 --- a/Back/skydiveLogs-api/Controllers/JumpTypeController.cs +++ b/Back/skydiveLogs-api/Controllers/JumpTypeController.cs @@ -6,6 +6,8 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using skydiveLogs_api.Business.Interface; using skydiveLogs_api.DataContract; +using AutoMapper; +using skydiveLogs_api.Model; namespace skydiveLogs_api.Controllers { @@ -13,43 +15,49 @@ namespace skydiveLogs_api.Controllers [ApiController] public class JumpTypeController : ControllerBase { - public JumpTypeController(IJumpTypeService jumpTypeService) + public JumpTypeController(IJumpTypeService jumpTypeService, + IMapper mapper) { _jumpTypeService = jumpTypeService; + _mapper = mapper; } // GET: api/JumpType [HttpGet] public IEnumerable Get() { - return new JumpTypeResp[] { "value1", "value2" }; + return _jumpTypeService.GetAllJumpTypes(); } // GET: api/JumpType/5 [HttpGet("{id}", Name = "Get")] public JumpTypeResp Get(int id) { - return "value"; + return _jumpTypeService.GetJumpTypeById(id); } // POST: api/JumpType [HttpPost] public void Post([FromBody] JumpTypeReq value) { + _jumpTypeService.AddNewJumpType(_mapper.Map(value)); } // PUT: api/JumpType/5 [HttpPut("{id}")] public void Put(int id, [FromBody] JumpTypeReq value) { + _jumpTypeService.UpdateJumpType(id, _mapper.Map(value)); } // DELETE: api/ApiWithActions/5 [HttpDelete("{id}")] public void Delete(int id) { + _jumpTypeService.DeleteJumpTypeById(id); } private readonly IJumpTypeService _jumpTypeService; + private readonly IMapper _mapper; } } diff --git a/Back/skydiveLogs-api/Mapper/ModelProfile.cs b/Back/skydiveLogs-api/Mapper/ModelProfile.cs new file mode 100644 index 0000000..54d7bea --- /dev/null +++ b/Back/skydiveLogs-api/Mapper/ModelProfile.cs @@ -0,0 +1,18 @@ +using AutoMapper; +using System; +using System.Collections.Generic; +using System.Text; + +namespace skydiveLogs_api.Mapper +{ + public class ModelProfile : Profile + { + public ModelProfile() + { + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + } + } +} diff --git a/Back/skydiveLogs-api/Program.cs b/Back/skydiveLogs-api/Program.cs index 54e7382..bc91d9c 100644 --- a/Back/skydiveLogs-api/Program.cs +++ b/Back/skydiveLogs-api/Program.cs @@ -10,7 +10,6 @@ namespace skydiveLogs_api CreateWebHostBuilder(args).Build().Run(); } - public static IWebHostBuilder CreateWebHostBuilder(string[] args) => - WebHost.CreateDefaultBuilder(args).UseStartup(); + public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args).UseStartup(); } } diff --git a/Back/skydiveLogs-api/Startup.cs b/Back/skydiveLogs-api/Startup.cs index 81489cf..a5e1c03 100644 --- a/Back/skydiveLogs-api/Startup.cs +++ b/Back/skydiveLogs-api/Startup.cs @@ -3,8 +3,10 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; + using skydiveLogs_api.Ioc; + namespace skydiveLogs_api { public class Startup @@ -24,6 +26,8 @@ namespace skydiveLogs_api // IoC var iocService = new IocService(services); iocService.Configure(); + + services.AddAutoMapper(typeof(Mapper.ModelProfile)); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/Back/skydiveLogs-api/skydiveLogs-api.csproj b/Back/skydiveLogs-api/skydiveLogs-api.csproj index ec71a84..d04aa39 100644 --- a/Back/skydiveLogs-api/skydiveLogs-api.csproj +++ b/Back/skydiveLogs-api/skydiveLogs-api.csproj @@ -7,6 +7,7 @@ +