public async Task<IActionResult> Post([FromBody] GarmentModel model) { if (ModelState.IsValid) { model = await _garmentsBusiness.UpdateGarment(model); return Ok(model); } return BadRequest(ModelState.ValidationState); }
public async Task <GarmentModel> UpdateGarment(GarmentModel model) { var garment = await GetGarment(model.GarmentId); if (garment == null) { garment = new Garment { GarmentMeasurements = new List <GarmentMeasurement>() }; model.AddedDate = DateTime.UtcNow; _ctx.Garments.Add(garment); } _ctx.Entry(garment).CurrentValues.SetValues(model); foreach (var garmentMeasurement in model.GarmentMeasurements) { garmentMeasurement.MeasurementType = null; if (garmentMeasurement.GarmentMeasurementId == 0) { garment.GarmentMeasurements.Add(Mapper.Map <GarmentMeasurement>(garmentMeasurement)); } else { var mt = garment.GarmentMeasurements.SingleOrDefault(t => t.GarmentMeasurementId == garmentMeasurement.GarmentMeasurementId); if (mt != null) { _ctx.Entry(mt).CurrentValues.SetValues(garmentMeasurement); } } } await _ctx.SaveChangesAsync(); return(await GetGarmentModel(garment.GarmentId)); }