示例#1
0
 public async Task<IActionResult> Post([FromBody] GarmentModel model)
 {
   if (ModelState.IsValid)
   {
     model = await _garmentsBusiness.UpdateGarment(model);
     return Ok(model);
   }
   return BadRequest(ModelState.ValidationState);
 }
示例#2
0
        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));
        }