コード例 #1
0
        // 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));
            }
        }
コード例 #2
0
        // 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));
            }
        }