public IHttpActionResult PostVehicle(VehicleBindingModel vehicle) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var list = unitOfWork.Vehicle.GetAll(); foreach (var item in list) { if (item.Model == vehicle.Model) { return(BadRequest("Already is vehicle with this name: " + vehicle.Model)); } } var typeOfVehicles = unitOfWork.TypeOfVehicle.GetAll(); TypeOfVehicle toV = new TypeOfVehicle(); foreach (var item in typeOfVehicles) { if (item.Name == vehicle.TypeOfVehicle) { toV = item; break; } } Vehicle vehi = new Vehicle() { Description = vehicle.Description, Image = vehicle.Image, Manufactor = vehicle.Manufactor, Model = vehicle.Model, PricePerHour = vehicle.PricePerHour, Unavailable = false, Year = vehicle.Year, Type = toV }; toV.Vehicles.Add(vehi); var services = unitOfWork.Services.GetAll(); Services ser = new Services(); foreach (var item in services) { if (item.Name == vehicle.ServerName) { ser = item; break; } } ser.Vehicles.Add(vehi); unitOfWork.Vehicle.Add(vehi); unitOfWork.TypeOfVehicle.Update(toV); unitOfWork.Services.Update(ser); unitOfWork.Complete(); return(CreatedAtRoute("DefaultApi", new { id = vehi.Id }, vehicle)); }
public IHttpActionResult PostVehicle(VehicleBindingModel vehicleBindingModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } string images = ""; foreach (var item in vehicleBindingModel.Images) { images += item + ";"; } var vehicle = new Vehicle() { Model = vehicleBindingModel.Model, Manufactor = vehicleBindingModel.Manufactor, Year = vehicleBindingModel.Year, Description = vehicleBindingModel.Description, PricePerHour = vehicleBindingModel.PricePerHour, Unavailable = vehicleBindingModel.Unavailable, VehicleImagesBase = images }; var typesOfVehicle = unitOfWork.TypesOfVehicle.GetAll(); var services = unitOfWork.Services.GetAll(); TypeOfVehicle t = new TypeOfVehicle(); Service s = new Service(); foreach (var item in typesOfVehicle) { if (item.Name == vehicleBindingModel.type) { vehicle.Type = item; t = item; item.Vehicles.Add(vehicle); } } foreach (var item in services) { if (item.Name == vehicleBindingModel.Service) { s = item; s.Vehicles.Add(vehicle); } } unitOfWork.Vehicles.Add(vehicle); unitOfWork.TypesOfVehicle.Update(t); unitOfWork.Services.Update(s); unitOfWork.Complete(); return(CreatedAtRoute("DefaultApi", new { id = vehicle.Id }, vehicle)); }
//[Authorize(Roles="Admin,Manager,AppUser,Client,NotAuthenticated")] //[AllowAnonymous] public IHttpActionResult PostVehicles(VehicleBindingModel vehicleBM) { lock (unitOfWork.Vehicles) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var type = new TypeOfVehicle(); var types = unitOfWork.Types.GetAll(); foreach (var t in types) { if (t.Name == vehicleBM.Type) { type = t; } } var ser = new Service(); var services = unitOfWork.Services.GetAll(); foreach (var s in services) { if (s.Name == vehicleBM.ServiceName) { ser = s; } } var vehicle = new Vehicle() { Deleted = vehicleBM.Deleted, Description = vehicleBM.Description, Images = vehicleBM.Images, Manufactor = vehicleBM.Manufactor, Model = vehicleBM.Model, PricePerHour = (decimal)vehicleBM.PricePerHour, Type = type, Unvailable = vehicleBM.Unvailable, Year = (int)vehicleBM.Year }; ser.Vehicles.Add(vehicle); unitOfWork.Vehicles.Add(vehicle); unitOfWork.Complete(); return(CreatedAtRoute("DefaultApi", new { id = vehicle.Id }, vehicle)); } }
public async Task <IHttpActionResult> PostVehicle(VehicleBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = db.Users.Find(User.Identity.GetUserId()); var driver = user.Profiles.OfType <Driver>().FirstOrDefault(); var engineTypeGuid = Guid.Parse(model.EngineType.Id); var engineType = db.EngineTypes.FirstOrDefault(et => et.Id == engineTypeGuid); if (engineType == null) { return(BadRequest()); } var stripedRegistration = model.Registration.Trim(' ').ToUpper(); Vehicle vehicle; var existingVehicles = db.Vehicles.Where(v => v.Registration == stripedRegistration); if (existingVehicles.Any()) { vehicle = existingVehicles.FirstOrDefault(); } else { vehicle = new Vehicle { Id = Guid.NewGuid(), Registration = model.Registration, EngineType = engineType }; } driver.Vehicles.Add(vehicle); db.Vehicles.Add(vehicle); try { await db.SaveChangesAsync(); } catch (DbUpdateException) { if (VehicleExists(vehicle.Id)) { return(Conflict()); } throw; } return(CreatedAtRoute("DefaultApi", new { id = vehicle.Id }, new VehicleViewModel() { Id = vehicle.Id.ToString(), Registration = vehicle.Registration, EngineType = new EngineTypeViewModel() { Id = vehicle.EngineType.Id.ToString() } })); }