public void InsertOrUpdate(KeyData keydata) { if (keydata.Id == default(int)) { // New entity context.KeyDatas.Add(keydata); } else { // Existing entity context.Entry(keydata).State = EntityState.Modified; } }
public ActionResult Create(KeyData keyData, HttpPostedFileBase file) { if (keyData.CycleValue == null) { keyData.CycleValue = keyData.Year.ToString(CultureInfo.InvariantCulture); } if ( keydataRepository.All.Any( k => k.CategoryId == keyData.CategoryId && k.Year == keyData.Year && k.CycleValue == keyData.CycleValue)) { ModelState.AddModelError("ShouldBeOnlyOne", string.Format("���������ݣ�{0}�꣬����Ϊ{1}�������Ѿ����ڡ�", keyData.Year, keyData.CycleValue)); } if (ModelState.IsValid) { keyData.CreateDate = DateTime.Now; GetFile(keyData, file); keydataRepository.InsertOrUpdate(keyData); keydataRepository.Save(); return RedirectToAction("Index", new {categoryId = keyData.CategoryId}); } if (keyData.CategoryId <= 0) { return RedirectToAction("Index", "Home"); } Category category = categoryRepository.AllIncluding(c => c.Cycle).Single(c => c.Id == keyData.CategoryId); if (category == null) { return RedirectToAction("Index", "Home"); } PopulateSelectList(category.CycleId); return View(InitKeyData(keyData.CategoryId)); }
private void GetFile(KeyData keydata, HttpPostedFileBase file) { if (file != null && file.ContentLength > 0) { var category = categoryRepository.Find(keydata.CategoryId); var filePath = new FilePathManager().GetFilePath(category.CategoryName); if (string.IsNullOrWhiteSpace(filePath)) { log.Warn("File path is empty."); filePath = Server.MapPath("~/Content/Uploads"); } string path = Path.Combine(filePath, file.FileName); keydata.FilePath = path; file.SaveAs(path); log.Info("A file store in {0}", path); } else { log.Debug("no file."); } }
private KeyData InitKeyData(int categoryId, KeyData keyData = null) { Category category = categoryRepository.AllIncluding(c => c.Cycle).Single(c => c.Id == categoryId); if (keyData == null) { keyData = new KeyData {Year = DateTime.Now.Year, Category = category, CategoryId = categoryId}; } ViewBag.CategoryId = categoryId; ViewBag.CycleId = category.Cycle.Id; return keyData; }
public ActionResult Edit(KeyData keyData, HttpPostedFileBase file) { ; if (keydataRepository.All.Any( k => k.CategoryId == keyData.CategoryId && k.Year == keyData.Year && k.CycleValue == keyData.CycleValue && k.Id != keyData.Id)) { ModelState.AddModelError("ShouldBeOnlyOne", string.Format("���������ݣ�{0}�꣬����Ϊ{1}�������Ѿ����ڡ�", keyData.Year, keyData.CycleValue)); } if (ModelState.IsValid) { if (keyData.CycleValue == null) { keyData.CycleValue = keyData.Year.ToString(); } keyData.CreateDate = DateTime.Now; GetFile(keyData, file); keydataRepository.InsertOrUpdate(keyData); keydataRepository.Save(); return RedirectToAction("Index", new {categoryId = keyData.CategoryId}); } if (keyData.CategoryId <= 0) { return RedirectToAction("Index", "Home"); } KeyData initedKeyData = InitKeyData(keyData.CategoryId, keyData); PopulateSelectList(ViewBag.CycleId, keyData.CycleValue); return View(initedKeyData); }