public ActionResult DeleteConfirmed(string id) { Car car = db.Cars.Find(id); Version ver = db.Versions.Find(car.id_version); Model mol = db.Models.Find(ver.id_model); Automaker au = db.Automakers.Find(mol.id_automaker); // Xóa hình của xe if (car.img_car != null && car.img_car != "") { string fullpath = Server.MapPath(car.img_car); FileInfo fi = new FileInfo(fullpath); if (fi != null) { System.IO.File.Delete(fullpath); fi.Delete(); } } db.Cars.Remove(car); // Đếm id dòng có phiên bản nào khác khóa ngoại tới không var countModel = (from c in db.Versions where c.id_model == mol.id_model select c).ToList(); db.Versions.Remove(ver); // Nếu không có thì xóa Model luôn if (countModel.Count() == 1) { // Đếm xem có dòng nào khóa ngoại tới id hãng không var countAu = (from c in db.Models where c.id_automaker == au.id_automaker select c).ToList(); db.Models.Remove(mol); if (countAu.Count() == 1) { db.Automakers.Remove(au); } } db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Create([Bind(Include = "id_car,overview_car,length_car,wheels_car,tireparameters_car,weight_car,capacity_car,horsepower_car,gear_car,torque_car,drivetype_car,frontbrakesystem_car,rearbrakesystem_car,maximumspeed_car,accelerationtime_car,capacitytank_car,numberseat_car,seat_car,airconditioner_car,sunroof_car,charge_car,img_car,imageFile")] Car car) { string name_au = Request["Version.Model.Automaker.name_automaker"]; string name_mo = Request["Version.Model.name_model"]; string name_ver = Request["Version.name_version"]; if (name_au == "" || name_mo == "" || name_ver == "") { if (name_au == "") { ModelState.AddModelError("au", "Không để trống tên hãng xe!"); } if (name_mo == "") { ModelState.AddModelError("mo", "Không để trống tên dòng xe!"); } if (name_ver == "") { ModelState.AddModelError("ver", "Không để trống tên phiên bản xe!"); } } if (ModelState.IsValid) { Automaker automaker = new Automaker(); Model model = new Model(); Version version = new Version(); var checkAu = (from n in db.Automakers where n.name_automaker == name_au select n.id_automaker).ToList(); if (checkAu.Count > 0) // Nếu dòng đã có sẵn { string id_au = checkAu[0]; var checkMo = (from n in db.Models where n.id_automaker == id_au && n.name_model == name_mo select n.id_model).ToList(); if (checkMo.Count > 0) // Nếu mẫu đã có sẵn { // Kiếm tra trùng tên Version string id_mo = checkMo[0]; var checkVer = (from n in db.Versions where n.id_model == id_mo && n.name_version == name_ver select n.id_version).ToList(); if (checkVer.Count > 0) { return(Content("false")); } else { // Sinh id phiên bản mới // SINH ID CHO VERSION var vers = (from c in db.Versions select c.id_version).ToList(); string id = ""; if (vers.Count == 0) // nếu danh sách rỗng { id = "Ve01"; } else { for (int i = 0; i < vers.Count(); i++) { if (int.Parse(vers[i].Substring(2, 2)) != (i + 1)) { if (i + 1 >= 0 && i + 1 < 9) { id = "Ve0" + (i + 1).ToString(); } else if (i + 1 > 9) { id = "Ve" + (i + 1).ToString(); } break; } } if (id == "") { id = vers[vers.Count - 1].Substring(2, 2); if (int.Parse(id) >= 0 && int.Parse(id) < 9) { id = "Ve0" + (int.Parse(id) + 1).ToString(); } else if (int.Parse(id) >= 9) { id = "Ve" + (int.Parse(id) + 1).ToString(); } } } automaker.id_automaker = checkAu[0]; automaker.name_automaker = Request["Version.Model.Automaker.name_automaker"]; model.id_automaker = automaker.id_automaker; model.id_model = checkMo[0]; model.name_model = Request["Version.Model.name_model"]; version.id_version = id; version.name_version = Request["Version.name_version"]; version.id_model = model.id_model; db.Versions.Add(version); } } else // Nếu dòng không có sẵn { // SINH ID CHO MODEL var mols = (from c in db.Models select c.id_model).ToList(); string idmol = ""; if (mols.Count == 0) // nếu danh sách rỗng { idmol = "Mo01"; } else { for (int i = 0; i < mols.Count(); i++) { if (int.Parse(mols[i].Substring(2, 2)) != (i + 1)) { if (i + 1 >= 0 && i + 1 < 9) { idmol = "Mo0" + (i + 1).ToString(); } else if (i + 1 > 9) { idmol = "Mo" + (i + 1).ToString(); } break; } } if (idmol == "") { idmol = mols[mols.Count - 1].Substring(2, 2); if (int.Parse(idmol) >= 0 && int.Parse(idmol) < 9) { idmol = "Mo0" + (int.Parse(idmol) + 1).ToString(); } else if (int.Parse(idmol) >= 9) { idmol = "Mo" + (int.Parse(idmol) + 1).ToString(); } } } automaker.id_automaker = checkAu[0]; automaker.name_automaker = Request["Version.Model.Automaker.name_automaker"].Trim().ToString(); model.id_model = idmol; model.name_model = Request["Version.Model.name_model"]; model.id_automaker = automaker.id_automaker; // SINH ID CHO VERSION var vers = (from c in db.Versions select c.id_version).ToList(); string id = ""; if (vers.Count == 0) // nếu danh sách rỗng { id = "Ve01"; } else { for (int i = 0; i < vers.Count(); i++) { if (int.Parse(vers[i].Substring(2, 2)) != (i + 1)) { if (i + 1 >= 0 && i + 1 < 9) { id = "Ve0" + (i + 1).ToString(); } else if (i + 1 > 9) { id = "Ve" + (i + 1).ToString(); } break; } } if (id == "") { id = vers[vers.Count - 1].Substring(2, 2); if (int.Parse(id) >= 0 && int.Parse(id) < 9) { id = "Ve0" + (int.Parse(id) + 1).ToString(); } else if (int.Parse(id) >= 9) { id = "Ve" + (int.Parse(id) + 1).ToString(); } } } version.id_version = id; version.name_version = Request["Version.name_version"]; version.id_model = model.id_model; db.Models.Add(model); db.Versions.Add(version); } } else { // SINH ID CHO AUTOMAKER var auto = (from c in db.Automakers select c.id_automaker).ToList(); string idauto = ""; if (auto.Count == 0) // nếu danh sách rỗng { idauto = "Au01"; } else { for (int i = 0; i < auto.Count(); i++) { if (int.Parse(auto[i].Substring(2, 2)) != (i + 1)) { if (i + 1 >= 0 && i + 1 < 9) { idauto = "Au0" + (i + 1).ToString(); } else if (i + 1 > 9) { idauto = "Au" + (i + 1).ToString(); } break; } } if (idauto == "") { idauto = auto[auto.Count - 1].Substring(2, 2); if (int.Parse(idauto) >= 0 && int.Parse(idauto) < 9) { idauto = "Au0" + (int.Parse(idauto) + 1).ToString(); } else if (int.Parse(idauto) >= 9) { idauto = "Au" + (int.Parse(idauto) + 1).ToString(); } } } automaker.id_automaker = idauto; automaker.name_automaker = Request["Version.Model.Automaker.name_automaker"]; // SINH ID CHO MODEL var mols = (from c in db.Models select c.id_model).ToList(); string idmol = ""; if (mols.Count == 0) // nếu danh sách rỗng { idmol = "Mo01"; } else { for (int i = 0; i < mols.Count(); i++) { if (int.Parse(mols[i].Substring(2, 2)) != (i + 1)) { if (i + 1 >= 0 && i + 1 < 9) { idmol = "Mo0" + (i + 1).ToString(); } else if (i + 1 > 9) { idmol = "Mo" + (i + 1).ToString(); } break; } } if (idmol == "") { idmol = mols[mols.Count - 1].Substring(2, 2); if (int.Parse(idmol) >= 0 && int.Parse(idmol) < 9) { idmol = "Mo0" + (int.Parse(idmol) + 1).ToString(); } else if (int.Parse(idmol) >= 9) { idmol = "Mo" + (int.Parse(idmol) + 1).ToString(); } } } model.id_model = idmol; model.name_model = Request["Version.Model.name_model"]; model.id_automaker = automaker.id_automaker; // SINH ID CHO VERSION var vers = (from c in db.Versions select c.id_version).ToList(); string id = ""; if (vers.Count == 0) // nếu danh sách rỗng { id = "Ve01"; } else { for (int i = 0; i < vers.Count(); i++) { if (int.Parse(vers[i].Substring(2, 2)) != (i + 1)) { if (i + 1 >= 0 && i + 1 < 9) { id = "Ve0" + (i + 1).ToString(); } else if (i + 1 > 9) { id = "Ve" + (i + 1).ToString(); } break; } } if (id == "") { id = vers[vers.Count - 1].Substring(2, 2); if (int.Parse(id) >= 0 && int.Parse(id) < 9) { id = "Ve0" + (int.Parse(id) + 1).ToString(); } else if (int.Parse(id) >= 9) { id = "Ve" + (int.Parse(id) + 1).ToString(); } } } version.id_version = id; version.name_version = Request["Version.name_version"]; version.id_model = model.id_model; db.Automakers.Add(automaker); db.Models.Add(model); db.Versions.Add(version); } string fileName = Path.GetFileNameWithoutExtension(car.imageFile.FileName); string extension = Path.GetExtension(car.imageFile.FileName); car.img_car = "/Asset/Image/Car/" + car.id_car + extension; fileName = Path.Combine(Server.MapPath("/Asset/Image/Car/"), car.id_car + extension); car.imageFile.SaveAs(fileName); car.id_version = version.id_version; db.Cars.Add(car); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.id_version = new SelectList(db.Versions, "id_version", "name_version", car.id_version); return(View(car)); }