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