public ActionResult Create()
        {
            CRM_EmailTemplateModel model = new CRM_EmailTemplateModel()
            {
                Actived = true
            };

            return(View(model));
        }
 public ActionResult Save(CRM_EmailTemplateModel model, List <EmailParameterDetailViewModel> detail)
 {
     try
     {
         if (ModelState.IsValid)
         {
             using (TransactionScope ts = new TransactionScope())
             {
                 _context.Entry(model).State = System.Data.Entity.EntityState.Added;
                 _context.SaveChanges();
                 if (detail != null)
                 {
                     CRM_EmailParameterModel EmailParameter;
                     foreach (var item in detail)
                     {
                         EmailParameter = new CRM_EmailParameterModel()
                         {
                             EmailTemplateId = model.EmailTemplateId,
                             Name            = item.Name,
                             Description     = item.Description
                         };
                         _context.Entry(EmailParameter).State = System.Data.Entity.EntityState.Added;
                         _context.SaveChanges();
                     }
                 }
                 ts.Complete();
                 return(Content("success"));
             }
         }
         else
         {
             return(Content("Vui lòng kiểm tra lại thông tin không hợp lệ"));
         }
     }
     catch (Exception ex)
     {
         return(Content("Xảy ra lỗi trong quá trình thêm mới."));
     }
 }
        //public ActionResult Edit(CRM_EmailTemplateModel model)
        //{
        //    try
        //    {
        //        if (ModelState.IsValid)
        //        {
        //            _context.Entry(model).State = System.Data.Entity.EntityState.Modified;
        //            _context.SaveChanges();
        //            return RedirectToAction("Index");
        //        }
        //        else
        //        {
        //            return View(model);
        //        }
        //    }
        //    catch
        //    {
        //        return View(model);
        //    }
        //}
        public ActionResult Update(CRM_EmailTemplateModel model, List <EmailParameterDetailViewModel> detail)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    using (TransactionScope ts = new TransactionScope())
                    {
                        _context.Entry(model).State = System.Data.Entity.EntityState.Modified;
                        _context.SaveChanges();

                        // Kiểm tra xem mẫu Email đã đc tham chiếu bởi bảng khác hay không
                        int RemiderId = _context.CRM_RemiderModel.Where(p => p.EmailTemplateId == model.EmailTemplateId).Select(p => p.RemiderId).FirstOrDefault();

                        #region Nếu không bị tham chiếu : Xoá những para bị xoá trên giao diện
                        if (RemiderId == 0)
                        {
                            if (detail == null)
                            {
                                detail = new List <EmailParameterDetailViewModel>();
                            }
                            List <int> lstEmailPara         = detail.Where(p => p.EmailParameterId != 0).Select(p => p.EmailParameterId).ToList();
                            var        lstEmailparaToDelete = _context.CRM_EmailParameterModel
                                                              .Where(p => p.EmailTemplateId == model.EmailTemplateId && !lstEmailPara.Contains(p.EmailParameterId))
                                                              .ToList();
                            foreach (var item in lstEmailparaToDelete)
                            {
                                _context.Entry(item).State = System.Data.Entity.EntityState.Deleted;
                                _context.SaveChanges();
                            }
                        }
                        #endregion

                        #region // Sửa và thêm
                        CRM_EmailParameterModel EmailParameter;
                        foreach (var item in detail)
                        {
                            if (item.EmailParameterId == 0)     //thêm mới
                            {
                                EmailParameter = new CRM_EmailParameterModel()
                                {
                                    EmailTemplateId = model.EmailTemplateId,
                                    Name            = item.Name,
                                    Description     = item.Description
                                };
                                _context.Entry(EmailParameter).State = System.Data.Entity.EntityState.Added;
                                _context.SaveChanges();
                            }
                            else    //sửa
                            {
                                var modeladd = _context.CRM_EmailParameterModel.Where(p => p.EmailParameterId == item.EmailParameterId).FirstOrDefault();
                                modeladd.EmailTemplateId       = model.EmailTemplateId;
                                modeladd.Name                  = item.Name;
                                modeladd.Description           = item.Description;
                                _context.Entry(modeladd).State = System.Data.Entity.EntityState.Modified;
                                _context.SaveChanges();
                            }
                        }
                        #endregion



                        ts.Complete();
                        return(Content("success"));
                    }
                }
                else
                {
                    return(Content("Vui lòng kiểm tra lại thông tin không hợp lệ"));
                }
            }
            catch (Exception ex)
            {
                return(Content("Lỗi hệ thống" + ex.Message));
            }
        }