예제 #1
0
        // public async Task<IActionResult> Create([Bind("Id,CostYear,PlanName,NumberLaw,DefiProjectCalss,ExecutiveUnit,PlanHost,ProjectClass,KeywordTw,SummaryTw,KeywordEng,SummaryEng")] Knowledged knowledge)
        public async Task <IActionResult> Create(KnowledgeViewModel vm_knowledge)
        {
            if (ModelState.IsValid)
            {
                Knowledged knowledgeds = new Knowledged
                {
                    Id               = vm_knowledge.Id,
                    CostYear         = vm_knowledge.CostYear,
                    PlanName         = vm_knowledge.PlanName,
                    NumberLaw        = vm_knowledge.NumberLaw,
                    DefiProjectClass = vm_knowledge.DefiProjectClass,
                    ExecutiveUnit    = vm_knowledge.ExecutiveUnit,
                    PlanHost         = vm_knowledge.PlanHost,
                    ProjectClass     = vm_knowledge.ProjectClass,
                    KeywordTw        = vm_knowledge.KeywordTw,
                    SummaryTw        = vm_knowledge.SummaryTw,
                    KeywordEng       = vm_knowledge.KeywordEng,
                    InfoLink         = vm_knowledge.InfoLink
                };

                _context.Add(knowledgeds);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(vm_knowledge));
        }
예제 #2
0
        //public async Task<IActionResult> Edit(int id, [Bind("Id,CostYear,PlanName,NumberLaw,DefiProjectCalss,ExecutiveUnit,PlanHost,ProjectClass,KeywordTw,SummaryTw,KeywordEng,SummaryEng")] Knowledged knowledge)
        public async Task <IActionResult> Edit(int id, KnowledgeViewModel vm_knowledge)
        {
            if (id != vm_knowledge.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    Knowledged knowledgeds = new Knowledged
                    {
                        Id               = vm_knowledge.Id,
                        CostYear         = vm_knowledge.CostYear,
                        PlanName         = vm_knowledge.PlanName,
                        NumberLaw        = vm_knowledge.NumberLaw,
                        DefiProjectClass = vm_knowledge.DefiProjectClass,
                        ExecutiveUnit    = vm_knowledge.ExecutiveUnit,
                        PlanHost         = vm_knowledge.PlanHost,
                        ProjectClass     = vm_knowledge.ProjectClass,
                        KeywordTw        = vm_knowledge.KeywordTw,
                        SummaryTw        = vm_knowledge.SummaryTw,
                        KeywordEng       = vm_knowledge.KeywordEng,
                        InfoLink         = vm_knowledge.InfoLink
                    };
                    _context.Update(knowledgeds);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!KnowledgeExists(vm_knowledge.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(vm_knowledge));
        }
예제 #3
0
        public ActionResult Query(string Costyear, string Numberlaw, string KeyWord, int page = 1)
        {
            //condition ? ref consequent : ref alternative
            string costyear  = Costyear ?? string.Empty;
            string numberlaw = Numberlaw ?? string.Empty;
            string keyword   = KeyWord ?? string.Empty;

            ViewBag.year    = costyear;
            ViewBag.law     = numberlaw;
            ViewBag.keyword = keyword;
            List <KnowledgeViewModel> knowledgeViewModels = new List <KnowledgeViewModel>();
            var list          = new List <Knowledged>();
            var knowledgeList = _context.Knowledged.OrderBy(k => k.Id);

            if (numberlaw != string.Empty && costyear != string.Empty && keyword != string.Empty)
            {
                list = knowledgeList.Where(k => k.CostYear == costyear && k.NumberLaw == numberlaw && (k.KeywordTw.Contains(keyword) || k.KeywordEng.Contains(keyword))).ToList();
            }
            else if (numberlaw == string.Empty && costyear == string.Empty && keyword == string.Empty)
            {
                list = knowledgeList.ToList();
            }
            else if (numberlaw != string.Empty && costyear != string.Empty && keyword == string.Empty)
            {
                list = knowledgeList.Where(k => k.CostYear == costyear && k.NumberLaw == numberlaw).ToList();
            }
            else if (numberlaw == string.Empty && costyear != string.Empty && keyword != string.Empty)
            {
                list = knowledgeList.Where(k => k.CostYear == costyear && (k.KeywordTw.Contains(keyword) || k.KeywordEng.Contains(keyword))).ToList();
            }
            else if (numberlaw != string.Empty && costyear == string.Empty && keyword != string.Empty)
            {
                list = knowledgeList.Where(k => k.NumberLaw == numberlaw && (k.KeywordTw.Contains(keyword) || k.KeywordEng.Contains(keyword))).ToList();
            }
            else if (numberlaw != string.Empty && costyear == string.Empty && keyword == string.Empty)
            {
                list = knowledgeList.Where(k => k.NumberLaw == numberlaw).ToList();
            }
            else if (numberlaw == string.Empty && costyear == string.Empty && keyword != string.Empty)
            {
                list = knowledgeList.Where(k => k.KeywordTw.Contains(keyword) || k.KeywordEng.Contains(keyword)).ToList();
            }
            else if (numberlaw == string.Empty && costyear != string.Empty && keyword == string.Empty)
            {
                list = knowledgeList.Where(k => k.CostYear == costyear).ToList();
            }

            for (int i = 0; i < list.Count; i++)
            {
                Knowledged item = list[i];
                knowledgeViewModels.Add(new KnowledgeViewModel()
                {
                    Id               = item.Id,
                    CostYear         = item.CostYear,
                    PlanName         = item.PlanName,
                    NumberLaw        = item.NumberLaw,
                    DefiProjectClass = item.DefiProjectClass,
                    ExecutiveUnit    = item.ExecutiveUnit,
                    PlanHost         = item.PlanHost,
                    ProjectClass     = item.ProjectClass,
                    KeywordTw        = item.KeywordTw,
                    SummaryTw        = item.SummaryTw,
                    KeywordEng       = item.KeywordEng,
                    InfoLink         = item.InfoLink
                });
            }

            //撈取 資料表中指定的欄位
            var costyearSelect = (from c in _context.Knowledged.OrderBy(c => c.Id)
                                  select c.CostYear).ToList().Distinct();

            var numberlawSelect = _context.Knowledged.Where(w => w.NumberLaw != null)
                                  .Select(a => new
            {
                index = Convert.ToInt32(a.NumberLaw.Replace("第", "").Replace("條", "")),
                a.NumberLaw
            }).Distinct()
                                  .OrderBy(o => o.index);
            //新增 下拉選單 物件
            List <SelectListItem> CostYear  = new List <SelectListItem>();
            List <SelectListItem> NumberLaw = new List <SelectListItem>();

            //撈取 下拉選單所需的資料內容 並加入下拉選單物件
            foreach (var item in costyearSelect)
            {
                CostYear.Add(new SelectListItem {
                    Value = item, Text = item
                });
            }
            foreach (var item in numberlawSelect)
            {
                NumberLaw.Add(new SelectListItem {
                    Value = item.NumberLaw, Text = item.NumberLaw
                });
            }
            //將下拉選單 傳到前端顯示
            ViewBag.CostYear  = new SelectList(CostYear, "Value", "Text");
            ViewBag.Numberlaw = new SelectList(NumberLaw, "Value", "Text");
            ViewBag.num       = knowledgeViewModels.Count().ToString();

            return(View(knowledgeViewModels.ToPagedList(page, pageSize)));
        }