Example #1
0
        public async Task <ActionResult> Create(CauHoi cauHoiLiet, DapAn dapan1, DapAn dapan2, DapAn dapan3, DapAn dapan4, HttpPostedFileBase file)
        {
            try
            {
                cauHoiLiet.MaCauHoiMoi = cauHoiLiet.MaCauHoi;
                cauHoiLiet.MaChuyenMuc = 8;
                List <DapAn> DapAnCauHoiLiets = new List <DapAn>();
                if (CauHoiLiets.Count() > 60)
                {
                    ModelState.AddModelError("", "Câu Hỏi Liệt Không Thể Trên 60 Câu!");
                }
                if (CauHoiLiets.Any(x => x.MaCauHoi == cauHoiLiet.MaCauHoi))
                {
                    ModelState.AddModelError("MaCauHoi", "Mã câu hỏi này đã tồn tại. Bạn hãy kiểm tra lại.");
                }
                else
                {
                    if (!string.IsNullOrEmpty(dapan1.NoiDung))
                    {
                        DapAnCauHoiLiets.Add(dapan1);
                    }
                    if (!string.IsNullOrEmpty(dapan2.NoiDung))
                    {
                        DapAnCauHoiLiets.Add(dapan2);
                    }
                    if (!string.IsNullOrEmpty(dapan3.NoiDung))
                    {
                        DapAnCauHoiLiets.Add(dapan3);
                    }
                    if (!string.IsNullOrEmpty(dapan4.NoiDung))
                    {
                        DapAnCauHoiLiets.Add(dapan4);
                    }
                    if (DapAnCauHoiLiets.Count > 0 && DapAnCauHoiLiets.Any(x => x.DapAnDung == true) == false)
                    {
                        ModelState.AddModelError("", "Bạn cần chỉ định ít nhất 1 đáp án là đáp án đúng!");
                    }
                }
                if (ModelState.IsValid)
                {
                    if (file != null && file.ContentLength > 0)
                    {
                        string fileName = DateTime.Now.Ticks.ToString() + System.IO.Path.GetExtension(file.FileName);
                        cauHoiLiet.Hinh = fileName;
                        file.SaveAs(Server.MapPath("~/Content/images/" + fileName));
                    }
                    db.CauHois.Add(cauHoiLiet);
                    int result = await db.SaveChangesAsync();

                    if (result > 0)
                    {
                        foreach (var dapAnCauHoiLiet in DapAnCauHoiLiets)
                        {
                            dapAnCauHoiLiet.MaCauHoi = cauHoiLiet.MaCauHoi;
                            db.DapAns.Add(dapAnCauHoiLiet);
                            await db.SaveChangesAsync();
                        }
                    }
                    return(RedirectToAction("Index"));
                }
                return(View(cauHoiLiet));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(cauHoiLiet));
            }
        }