public Vehicle createVehicleHelper(VehicleHash model, Vector3 pos, Vector3 rot, int ownerId = 0) { Random r = new Random(); int color = r.Next(0, 160); Vehicle vehicle = API.createVehicle(model, pos, rot, color, color); Veh veh = new Veh(API.getVehicleDisplayName(model), ownerId); veh.Handle = vehicle.handle.Value; // trigger client event to stream number plate info API.setVehicleNumberPlate(vehicle, veh.Plate); API.setVehicleEngineStatus(vehicle, false); API.sendNativeToAllPlayers(Hash.SET_VEHICLE_DOORS_LOCKED, API.getEntityFromHandle <Vehicle>(vehicle), 2); API.setEntityData(vehicle, "JSON_DATA", API.toJson(veh)); API.setEntitySyncedData(vehicle, "PLATE", veh.Plate); _database = new MySqlConnectionStringBuilder("server=localhost;user=root;database=gtanserver;port=3306;password=;"); _vehicleRepository = _database.Connection().As <IVehicleRepository>(); _vehicleRepository.AddNewVehicle(veh); return(vehicle); }
public async Task <IActionResult> AddNewVehicle(Vehicle addNewVehicle) { // The uploaded files from the users POST. var uploadedImages = Request.Form.Files; if (ModelState.IsValid && addNewVehicle != null) { // Creating the folder structure. string webrootPath = _hostingEnvironment.WebRootPath; string createImageFolder = webrootPath + "\\images"; Directory.CreateDirectory(createImageFolder); string createVehicleImagesFolder = createImageFolder + "\\vehicle_images"; Directory.CreateDirectory(createVehicleImagesFolder); string createSpecificVehicleFolder = createVehicleImagesFolder + "\\" + addNewVehicle.Brand + "_" + addNewVehicle.RegNr; Directory.CreateDirectory(createSpecificVehicleFolder); List <Models.Image> images = new List <Models.Image>(); // Taking each uploaded image and saving it in the correct folder. foreach (var file in uploadedImages) { Guid uniqueGuid = Guid.NewGuid(); string targetFileName = uniqueGuid + "_" + file.FileName; string finalTargetFilePath = createSpecificVehicleFolder + "\\" + targetFileName; if (file.Length > 0) { // Copy file to target. using (var stream = new FileStream(finalTargetFilePath, FileMode.Create)) { await file.CopyToAsync(stream); } } // Resize and save the image under the correct folder. Calls on the ImageResize function. string resizedImageFolder = createSpecificVehicleFolder + "\\resized_images"; if (!Directory.Exists(resizedImageFolder)) { Directory.CreateDirectory(resizedImageFolder); } ImageResize(finalTargetFilePath, resizedImageFolder + "\\" + targetFileName, 100); var theImage = new Models.Image { Name = uniqueGuid, Path = "/images/vehicle_images/" + addNewVehicle.Brand + "_" + addNewVehicle.RegNr + "/" + targetFileName }; images.Add(theImage); } addNewVehicle.Images = images; if (uploadedImages.Count() == 0) { List <Models.Image> defaultImageList = new List <Models.Image>(); Guid defaultImageGuid = Guid.NewGuid(); var defaultImage = new Models.Image { Name = defaultImageGuid, Path = "/defaultimages/Image_Upload.png" }; defaultImageList.Add(defaultImage); addNewVehicle.Images = defaultImageList; } Office jkpgOffice = officeRepo.Offices.Single(o => o.OfficeCode == "BB1"); Office varnOffice = officeRepo.Offices.Single(o => o.OfficeCode == "BB2"); Office gbgOffice = officeRepo.Offices.Single(o => o.OfficeCode == "BB3"); if (addNewVehicle.Office == "Jönköping") { addNewVehicle.OfficeId = jkpgOffice; } if (addNewVehicle.Office == "Värnamo") { addNewVehicle.OfficeId = varnOffice; } if (addNewVehicle.Office == "Göteborg") { addNewVehicle.OfficeId = gbgOffice; } addNewVehicle.AddedDate = DateTime.Now; addNewVehicle.UpdatedDate = DateTime.Now; vehicleRepo.AddNewVehicle(addNewVehicle); return(Json(new { data = true })); } return(View()); }