public async Task <IActionResult> Create([Bind("Id,Brand,Model,Price,ProductionYear,Kilometers,City,Description,ImageFile,CostumerHasVisitedTheCar,IsManual,Fuel,CubicCapacity,UserId,ModifyDate,InsertDate")] Vehicle vehicle, [Bind("VehicleId,Interior,Color,IsCustomDutyPaid,IsRegistered,IsUsed,HasAirCondition,HasElectricHeatedSeats,HasSportPackage,HasPanoramaRoof,HasCentralDoorLock,HasParkingSensors,HasParkingCamera" + "Owners,IsNonSmokingVehicle,NumberOfDoors,NumberOfSeates")] VhlDetails vhlDetails) { if (ModelState.IsValid) { string wwwrootPath = hostEnvironment.WebRootPath; string fileName = Path.GetFileNameWithoutExtension(vehicle.ImageFile.FileName); string extension = Path.GetExtension(vehicle.ImageFile.FileName); vehicle.Photo = fileName = fileName + DateTime.Now.ToString("yymmssfff") + extension; string path = Path.Combine(wwwrootPath + "/Img/", fileName); using (var fileStream = new FileStream(path, FileMode.Create)) { await vehicle.ImageFile.CopyToAsync(fileStream); } vehicle.Id = Guid.NewGuid(); vhlDetails.Id = Guid.NewGuid(); //Generating a new Id for vhlDetails vhlDetails.VehicleId = vehicle.Id; // Giving to Details the Vehicle ID vehicle.UserId = User.FindFirstValue(ClaimTypes.NameIdentifier); // Giving UserId the value of the Current User _context.Add(vehicle); _context.VhlDetails.Add(vhlDetails); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["UserId"] = new SelectList(_context.Set <AutoKsUser>(), "Id", "Id", vehicle.UserId); ViewData["Make"] = _context.CarsList.Select(d => d.Make).Distinct().ToList().Select(d => new SelectListItem { Value = d, Text = d }); return(View(vehicle)); }
public async Task <IActionResult> Edit(Guid id, [Bind("Id,Brand,Model,Price,ProductionYear,Kilometers,City,Description,Photo,CostumerHasVisitedTheCar,IsManual,Fuel,CubicCapacity,UserId,ModifyDate,InsertDate")] Vehicle vehicle, [Bind("Id,VehicleId,Interior,Color,IsCustomDutyPaid,IsRegistered,IsUsed,HasAirCondition,HasElectricHeatedSeats,HasSportPackage,HasPanoramaRoof,HasCentralDoorLock,HasParkingSensors,HasParkingCamera" + "Owners,IsNonSmokingVehicle,NumberOfDoors,NumberOfSeates")] VhlDetails vhlDetails) { if (id != vehicle.Id) { return(NotFound()); } if (ModelState.IsValid) { var details = await _context.VhlDetails.FirstOrDefaultAsync(v => v.VehicleId == id); vhlDetails.Id = details.Id; vhlDetails.VehicleId = id; _context.Entry <VhlDetails>(details).State = EntityState.Detached; try { _context.Vehicles.Update(vehicle); _context.VhlDetails.Update(vhlDetails); await _context.SaveChangesAsync(); //_context.Entry<VhlDetails>(vhlDetails).State = EntityState.Detached; //_context.Entry<Vehicle>(vehicle).State = EntityState.Detached; } catch (DbUpdateConcurrencyException) { if (!VehicleExists(vehicle.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } var vehicleWithDetails = new VehicleWithDetails(vehicle, vhlDetails); ViewData["UserId"] = new SelectList(_context.Set <AutoKsUser>(), "Id", "Id", vehicle.UserId); ViewData["Make"] = _context.CarsList.Select(d => d.Make).Distinct().ToList().Select(d => new SelectListItem { Value = d, Text = d }); return(View(vehicleWithDetails)); }