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