List of commits:
Subject Hash Author Date (UTC)
Move more context queries to repository 2cce05a668e039917d2c0967aa97eb3786dd5de2 Antonio Calatayud 2019-01-06 17:59:17
Start implementing repository pattern 1d0b0cd78bc861d0e0282a69e5d88b219efbb118 Antonio Calatayud 2019-01-06 17:37:57
Return all inf when update/added vehicle ef44980290b644244de12ad9e064ca6dcee0ac2b Antonio Calatayud 2019-01-04 16:51:50
Refactor to bring different vehicle resources between get & update/add 6980669ec37dab31b595af6fa1be6718eef4b4e1 Antonio Calatayud 2019-01-04 16:37:41
Implemented Get Vehicle d340e1c7dda6424e1e370465be03e4e7a74c0b3e Antonio Calatayud 2019-01-04 15:45:26
Implemented delete vehicle a07116dd194b102098b3e826680d374ad6f3660e Antonio Calatayud 2019-01-04 15:32:13
Implement update vehicle d52a39f524983c681a190023a40337425432c7a6 Antonio Calatayud 2019-01-04 15:23:19
Add Validation when creating a vehicle 7a0f75bba8507110d9d8e801969cdf7497fa15a8 antonio.calatayud 2019-01-02 16:40:39
Add vehicle to database capability fa84eb5a526a124b4ec7126271052611e0f57bb1 antonio.calatayud 2019-01-02 16:22:18
Fix Migrations e540688f04b874a8f3f5c95c6f31c640440b2921 antonio.calatayud 2019-01-02 15:51:37
Create controller and resource to create new vehicle a1c21acba62f5070cc61ffc4910218be3e52b052 Antonio Calatayud 2018-12-19 15:50:37
New vehicle model for context 1040629cd4f2931f0c4ebee6f5c505ebaff3d97b Antonio Calatayud 2018-11-26 17:43:04
Finish form 291cafcfa67fbfec687fc2d58e4fb70e8cb11975 Antonio Calatayud 2018-11-26 16:31:54
Merge services 385e874ea56eb15a14f983e94d5cbd444cc13ba7 Antonio Calatayud 2018-11-16 22:40:25
Populate feature checkboxes 1d31b1b0f70c96ceb04f375bb28affbdcc6bbf93 Antonio Calatayud 2018-11-16 22:30:32
Create Feature Service 83633fa68f9ceb113974f8cfa1cbad527dcb1730 Antonio Calatayud 2018-11-16 22:21:55
Add cascade dropdown for model 23a3a4509386c52d83df8e2742260b31d74d2c31 Antonio Calatayud 2018-11-16 22:14:27
Populate dropdown list of makes 2f990816aa06a5c1157792e7194118e8f27edd01 Antonio Calatayud 2018-11-16 21:57:05
Create service to bring makes 4392eaef90093371844491026c771439cb43907e Antonio Calatayud 2018-11-16 21:54:02
Start form 73244c2b63ba957d2a8212d32b7a18114a6a4e72 Antonio Calatayud 2018-11-16 21:52:19
Commit 2cce05a668e039917d2c0967aa97eb3786dd5de2 - Move more context queries to repository
Author: Antonio Calatayud
Author date (UTC): 2019-01-06 17:59
Committer name: Antonio Calatayud
Committer date (UTC): 2019-01-06 17:59
Parent(s): 1d0b0cd78bc861d0e0282a69e5d88b219efbb118
Signer:
Signing key:
Signing status: N
Tree: e000c99213b283a8572278cb26dedcce2489aca5
File Lines added Lines deleted
Controllers/VehiclesController.cs 4 4
Core/Repositories/IVehicleRepository.cs 3 1
Persistence/Repositories/VehicleRepository.cs 19 6
File Controllers/VehiclesController.cs changed (mode: 100644) (index f874130..d27abc7)
... ... namespace vega.Controllers
33 33 if (!ModelState.IsValid) if (!ModelState.IsValid)
34 34 return BadRequest(ModelState); return BadRequest(ModelState);
35 35
36 var model = await context.Models.FindAsync(vehicleResource.ModelId);
36 var model = await repository.GetVehicle(vehicleResource.ModelId, includeRelated: false);
37 37 if (model == null) if (model == null)
38 38 { {
39 39 ModelState.AddModelError("ModelId", "Invalid modelId"); ModelState.AddModelError("ModelId", "Invalid modelId");
 
... ... namespace vega.Controllers
43 43 var vehicle = mapper.Map<SaveVehicleResource, Vehicle>(vehicleResource); var vehicle = mapper.Map<SaveVehicleResource, Vehicle>(vehicleResource);
44 44 vehicle.LastUpdate = DateTime.Now; vehicle.LastUpdate = DateTime.Now;
45 45
46 context.Vehicles.Add(vehicle);
46 repository.Add(vehicle);
47 47 await context.SaveChangesAsync(); await context.SaveChangesAsync();
48 48
49 49 vehicle = await repository.GetVehicle(vehicle.Id); vehicle = await repository.GetVehicle(vehicle.Id);
 
... ... namespace vega.Controllers
75 75 [HttpDelete("{id}")] [HttpDelete("{id}")]
76 76 public async Task<IActionResult> DeleteVehicle(int id) public async Task<IActionResult> DeleteVehicle(int id)
77 77 { {
78 var vehicle = await context.Vehicles.FindAsync(id);
78 var vehicle = await repository.GetVehicle(id, includeRelated: false);
79 79
80 80 if (vehicle == null) if (vehicle == null)
81 81 return NotFound(); return NotFound();
82 82
83 context.Vehicles.Remove(vehicle);
83 repository.Remove(vehicle);
84 84 await context.SaveChangesAsync(); await context.SaveChangesAsync();
85 85
86 86 return Ok(id); return Ok(id);
File Core/Repositories/IVehicleRepository.cs changed (mode: 100644) (index 87ee5d7..b2c0413)
... ... namespace vega.Core.Repositories
6 6 { {
7 7 public interface IVehicleRepository public interface IVehicleRepository
8 8 { {
9 Task<Vehicle> GetVehicle(int id);
9 Task<Vehicle> GetVehicle(int id, bool includeRelated = true);
10 void Add(Vehicle vehicle);
11 void Remove(Vehicle vehicle);
10 12 } }
11 13 } }
File Persistence/Repositories/VehicleRepository.cs changed (mode: 100644) (index 77173b0..8ad8dc6)
... ... namespace vega.Persistence.Repositories
12 12 { {
13 13 this.context = context; this.context = context;
14 14 } }
15 public async Task<Vehicle> GetVehicle(int id)
15 public async Task<Vehicle> GetVehicle(int id, bool includeRelated = true)
16 16 { {
17 if (!includeRelated)
18 return await context.Vehicles.FindAsync(id);
19
17 20 return await context.Vehicles return await context.Vehicles
18 .Include(v => v.Features)
19 .ThenInclude(vf => vf.Feature)
20 .Include(v => v.Model)
21 .ThenInclude(m => m.Make)
22 .SingleOrDefaultAsync(v => v.Id == id);
21 .Include(v => v.Features)
22 .ThenInclude(vf => vf.Feature)
23 .Include(v => v.Model)
24 .ThenInclude(m => m.Make)
25 .SingleOrDefaultAsync(v => v.Id == id);
26 }
27
28 public void Add(Vehicle vehicle)
29 {
30 context.Vehicles.Add(vehicle);
31 }
32
33 public void Remove(Vehicle vehicle)
34 {
35 context.Vehicles.Remove(vehicle);
23 36 } }
24 37 } }
25 38 } }
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/antcalatayud/vega

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/antcalatayud/vega

Clone this repository using git:
git clone git://git.rocketgit.com/user/antcalatayud/vega

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main