// POST api/Vehiculos public HttpResponseMessage PostVehiculo(Vehiculo vehiculo) { if (ModelState.IsValid) { var insumos = vehiculo.Insumos.ToList(); vehiculo.Insumos.Clear(); db.Vehiculos.Add(vehiculo); db.SaveChanges(); var newVeh = db.Vehiculos.Find(vehiculo.IdVehiculo); foreach (var insumo in db.Insumos) { if (insumos.Any(i => i.IdInsumo.Equals(insumo.IdInsumo))) { newVeh.Insumos.Add(insumo); } } db.SaveChanges(); vehiculo.Insumos = insumos.Select(i => new Insumo { IdInsumo = i.IdInsumo, Nombre = i.Nombre }).ToList(); Modelo selModelo = db.Modelos.Include(m => m.VehiculoMarca).Where(x => x.IdModelo.Equals(vehiculo.IdModelo)).AsEnumerable().Select(m => new Modelo { Nombre = m.Nombre, IdMarca = m.IdMarca, VehiculoMarca = new VehiculoMarca() { IdMarca = m.IdMarca, Nombre = m.VehiculoMarca.Nombre } }).First(); vehiculo.Modelo = selModelo; MEDECAWebApp.Models.VehiculoModel anew = new MEDECAWebApp.Models.VehiculoModel(); anew.Info = string.Format("{0} {1} {2}", selModelo.VehiculoMarca.Nombre, selModelo.Nombre, vehiculo.Anio); anew.Anio = newVeh.Anio; anew.Color = newVeh.Color; anew.IdCliente = newVeh.IdCliente; anew.IdCombustible = newVeh.IdCombustible; anew.IdModelo = newVeh.IdModelo; anew.IdVehiculo = newVeh.IdVehiculo; anew.Insumos = insumos; anew.Kilometraje = newVeh.Kilometraje; anew.Modelo = selModelo; anew.NoChasis = newVeh.NoChasis; anew.Placa = newVeh.Placa; HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, anew); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = vehiculo.IdVehiculo })); return(response); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }
// PUT api/Vehiculos/5 public HttpResponseMessage PutVehiculo(MEDECAWebApp.Models.VehiculoModel vehiculo) { if (ModelState.IsValid) { db.Vehiculos.AddOrUpdate(vehiculo); var vh = db.Vehiculos.Find(vehiculo.IdVehiculo); vh.Insumos.Clear(); var insumos = vehiculo.Insumos.ToList(); foreach (var insumo in db.Insumos) { if (insumos.Any(i => i.IdInsumo.Equals(insumo.IdInsumo))) { vh.Insumos.Add(insumo); } } try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } Modelo selModelo = db.Modelos.Include(m => m.VehiculoMarca).Where(x => x.IdModelo.Equals(vehiculo.IdModelo)).AsEnumerable().Select(m => new Modelo { Nombre = m.Nombre, IdMarca = m.IdMarca, VehiculoMarca = new VehiculoMarca() { IdMarca = m.IdMarca, Nombre = m.VehiculoMarca.Nombre } }).First(); vehiculo.Info = string.Format("{0} {1} {2}", selModelo.VehiculoMarca.Nombre, selModelo.Nombre, vehiculo.Anio); vehiculo.Modelo = selModelo; HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, vehiculo); return(response); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }