Add Gear controller/service/repo and relations in db between Jumps and others objects

This commit is contained in:
Sébastien André
2019-11-22 23:19:17 +01:00
parent 29740709c6
commit b9a29bcd79
12 changed files with 178 additions and 13 deletions

View File

@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using skydiveLogs_api.Business.Interface;
using skydiveLogs_api.Model;
using skydiveLogs_api.Data.Interface;
namespace skydiveLogs_api.Business
{
public class GearService : IGearService
{
public GearService(IGearRepository gearRepository)
{
_gearRepository = gearRepository;
}
public void AddNewGear(Gear Gear)
{
throw new NotImplementedException();
}
public void DeleteGearById(int id)
{
throw new NotImplementedException();
}
public Gear GetGearById(int id)
{
return _gearRepository.GetById(id);
}
public IEnumerable<Gear> GetAllGears()
{
return _gearRepository.GetAll();
}
public void UpdateGear(int id, Gear Gear)
{
throw new NotImplementedException();
}
private readonly IGearRepository _gearRepository;
}
}

View File

@@ -0,0 +1,18 @@
using System.Collections.Generic;
using skydiveLogs_api.Model;
namespace skydiveLogs_api.Business.Interface
{
public interface IGearService
{
IEnumerable<Gear> GetAllGears();
Gear GetGearById(int id);
void DeleteGearById(int id);
void UpdateGear(int id, Gear Gear);
void AddNewGear(Gear Gear);
}
}

View File

@@ -11,7 +11,11 @@ namespace skydiveLogs_api.Business.Interface
Jump GetJumpById(int id);
void AddNewJump(Jump jump);
void AddNewJump(int aircraftId,
int dzId,
int jumpTypeId,
int gearId,
Jump jump);
void UpdateJump(int id, Jump jump);

View File

@@ -10,13 +10,35 @@ namespace skydiveLogs_api.Business
{
public class JumpService : IJumpService
{
public JumpService(IJumpRepository jumpRepository)
public JumpService(IJumpTypeService jumpTypeService,
IAircraftService aircraftService,
IDropZoneService dropZoneService,
IGearService gearService,
IJumpRepository jumpRepository)
{
_jumpTypeService = jumpTypeService;
_aircraftService = aircraftService;
_dropZoneService = dropZoneService;
_gearService = gearService;
_jumpRepository = jumpRepository;
}
public void AddNewJump(Jump jump)
public void AddNewJump(int aircraftId,
int dzId,
int jumpTypeId,
int gearId,
Jump jump)
{
var selectedGear = _gearService.GetGearById(gearId);
var selectedJumpType = _jumpTypeService.GetJumpTypeById(jumpTypeId);
var selectedAircraft = _aircraftService.GetAircraftById(aircraftId);
var selectedDropZone = _dropZoneService.GetDzById(dzId);
jump.Aircraft = selectedAircraft;
jump.JumpType = selectedJumpType;
jump.DropZone = selectedDropZone;
jump.Gear = selectedGear;
_jumpRepository.AddJump(jump);
}
@@ -41,5 +63,13 @@ namespace skydiveLogs_api.Business
}
private readonly IJumpRepository _jumpRepository;
private readonly IJumpTypeService _jumpTypeService;
private readonly IAircraftService _aircraftService;
private readonly IDropZoneService _dropZoneService;
private readonly IGearService _gearService;
}
}

View File

@@ -19,7 +19,12 @@ namespace skydiveLogs_api.Data
public IEnumerable<Jump> GetAll()
{
return _col.FindAll().ToList();
return _col.Include(x => x.Aircraft)
.Include(x => x.DropZone)
.Include(x => x.Gear)
.Include(x => x.JumpType)
.FindAll()
.ToList();
}
public Jump GetById(int id)

View File

@@ -20,6 +20,7 @@ namespace skydiveLogs_api.Ioc
//_services.AddSingleton<Services.IPermissionService, Services.PermissionService>();
_services.AddScoped<Business.Interface.IAircraftService, Business.AircraftService>();
_services.AddScoped<Business.Interface.IGearService, Business.GearService>();
_services.AddScoped<Business.Interface.IDropZoneService, Business.DropZoneService>();
_services.AddScoped<Business.Interface.IJumpService, Business.JumpService>();
_services.AddScoped<Business.Interface.IJumpTypeService, Business.JumpTypeService>();

View File

@@ -6,14 +6,6 @@ namespace skydiveLogs_api.Model
{
public int Id { get; set; }
//public int JumpTypeId { get; set; }
//public int AircraftId { get; set; }
//public int DropZoneId { get; set; }
//public int GearId { get; set; }
public JumpType JumpType { get; set; }
public Aircraft Aircraft { get; set; }

View File

@@ -0,0 +1,66 @@
using System;
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
{
[Route("api/[controller]")]
[ApiController]
public class GearController : ControllerBase
{
public GearController(IGearService gearService,
IMapper mapper)
{
_gearService = gearService;
_mapper = mapper;
}
// GET: api/Gear
[HttpGet]
public IEnumerable<GearResp> Get()
{
var result = _gearService.GetAllGears();
return _mapper.Map<IEnumerable<GearResp>>(result);
}
// GET: api/Gear/5
[HttpGet("{id}")]
public GearResp Get(int id)
{
var result = _gearService.GetGearById(id);
return _mapper.Map<GearResp>(result);
}
// POST: api/Gear
[HttpPost]
public void Post([FromBody] GearReq value)
{
_gearService.AddNewGear(_mapper.Map<Gear>(value));
}
// PUT: api/Gear/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] GearReq value)
{
_gearService.UpdateGear(id, _mapper.Map<Gear>(value));
}
// DELETE: api/ApiWithActions/5
[HttpDelete("{id}")]
public void Delete(int id)
{
_gearService.DeleteGearById(id);
}
private readonly IGearService _gearService;
private readonly IMapper _mapper;
}
}

View File

@@ -42,7 +42,11 @@ namespace skydiveLogs_api.Controllers
[HttpPost]
public void Post([FromBody] JumpReq value)
{
_jumpService.AddNewJump(_mapper.Map<Jump>(value));
_jumpService.AddNewJump(value.AircraftId,
value.DropZoneId,
value.JumpTypeId,
value.GearId,
_mapper.Map<Jump>(value));
}
// PUT: api/Jump/5

Binary file not shown.

Binary file not shown.