public async Task <IActionResult> UpdateVehicle(int id, [FromBody] SaveVehicleResource vehicleResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var vehicle = await vehicleRepository.GetVehicle(id); if (vehicle == null) { return(NotFound()); } mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource, vehicle); vehicle.LastUpdatedOn = DateTime.Now; await unitOfwork.CompleteAsync(); vehicle = await vehicleRepository.GetVehicle(vehicle.Id); var result = mapper.Map <Vehicle, VehicleResource>(vehicle); return(Ok(result)); }
public IActionResult UpdateVehicle(int id, [FromBody] SaveVehicleResource vehicleResource) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var vehicle = repository.GetVehicle(id); if (vehicle == null) { return NotFound(); } mapper.Map(vehicleResource, vehicle); vehicle.LastUpdate = DateTime.Now; unitOfWork.Complete(); vehicle = repository.GetVehicle(vehicle.Id); var result = mapper.Map<Vehicle, VehicleResource>(vehicle); return Ok(result); }
public async Task <IActionResult> UpdateVechicle(int id, [FromBody] SaveVehicleResource vehicleResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var vehicle = await repository.GetVehicle(id); if (vehicle == null) { return(NotFound()); } vehicle.VehicleFeatures = new Collection <VehicleFeature>(); context.Entry(vehicle).State = EntityState.Modified; await unitOfWork.CompleteAsync(); vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource, vehicle); vehicle.LastUpdate = DateTime.Now; context.Entry(vehicle).State = EntityState.Modified; await unitOfWork.CompleteAsync(); return(Ok()); }
public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } #region Unnecessary ModelId, FeatureId Validation - comes from drop-down in client //var model = await context.Models.FindAsync(vehicleResource.ModelId); //if (model == null) //{ // ModelState.AddModelError("ModelId", "Invalid modelId."); // return BadRequest(ModelState); //} //var notFoundFeatures = vehicleResource.Features.Where(f => context.Features.Find(f) == null); //if (notFoundFeatures.Any()) //{ // ModelState.AddModelError("FeatureId", "Invalid featureId."); // return BadRequest(ModelState); //} #region Depricated - Rewritten as lambda //foreach (int vId in vehicleResource.Features) //{ // var feature = await context.Features.FindAsync(vId); // if (feature == null) // { // ModelState.AddModelError("FeatureId", "Invalid featureId."); // return BadRequest(ModelState); // } //} #endregion #endregion #region Business Rule Validation Sample // An example would be: don't allow more than 5 cars to be introduced per business day //if(//Put Business Rules Logic in Method/Service and Call Here) //{ // ModelState.AddModelError("..", "error"); // return BadRequest(ModelState); //} #endregion var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource); vehicle.LastUpdate = DateTime.Now; repository.Add(vehicle); await unitOfWork.CompleteAsync(); #region Depricated - Pass through Repository to Decouple //context.Vehicles.Add(vehicle); #endregion #region Depricated - Moved to IUnitOfWork //await context.SaveChangesAsync(); #endregion #region One way of including Eager loaded data for VehicleResource return //// Not necessary to return this to vehicle.Model -> once EF has loaded into context will update internally //await context.Models.Include(m => m.Make).SingleOrDefaultAsync(m => m.Id == vehicle.ModelId); #endregion // Fetch complete vehicle object - reset object ("rehydrate") vehicle = await repository.GetVehicle(vehicle.Id); var result = mapper.Map <Vehicle, VehicleResource>(vehicle); return(Ok(result)); #region Depricated - Should be returning domain resources not models directly //return Ok(vehicle); #endregion ////Will serialize as json and return with 200 success response //return Ok(vehicle); }
public async Task <IActionResult> DeleteVehicle(int id, [FromBody] SaveVehicleResource vehicleResource) { var result = await service.DeleteVehicle(id); return(Ok(result)); }
public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource) { var vehicle = await service.CreateVehicle(vehicleResource); return(Ok(vehicle)); }
/// <summary> /// Create new vehicle and store it to database. /// </summary> /// <returns></returns> public async Task <Vehicle> CreateVehicle(SaveVehicleResource vehicleResource) { var vehicle = await Repository.CreateVehicle(vehicleResource); return(vehicle); }