public ActionResult Search(SearchGuestbook searchGuestbook) { if (searchGuestbook is object) { if (lastSearchSetting is object) { if (searchGuestbook.Keyword != lastSearchSetting.Keyword || searchGuestbook.Score != lastSearchSetting.Score) { Debug.WriteLine("G"); searchGuestbook.Page = 1; } } lastSearchSetting = searchGuestbook; searchGuestbook.Page = searchGuestbook.Page == 0 ? 1 : searchGuestbook.Page; var guestbooks = new List <Guestbook>(); if (!searchGuestbook.Keyword.IsNullOrWhiteSpace()) { ViewData["Keyword"] = searchGuestbook.Keyword; guestbooks = db.Guestbooks.Where(guestbook => guestbook.Content.Contains(searchGuestbook.Keyword)).ToList(); } else { ViewData["Keyword"] = ""; guestbooks = db.Guestbooks.ToList(); } if (!searchGuestbook.Score.IsNullOrWhiteSpace() && searchGuestbook.Score != string.Empty) { ViewData["Score"] = searchGuestbook.Score; var integerScore = int.Parse(searchGuestbook.Score); if (guestbooks.Count == 0) { guestbooks = db.Guestbooks.Where(guestbook => guestbook.Score == integerScore).ToList(); } else { guestbooks = guestbooks.Where(guestbook => guestbook.Score == integerScore).ToList(); } } else { ViewData["Score"] = ""; } if (!searchGuestbook.Call.IsNullOrWhiteSpace() && searchGuestbook.Call != string.Empty) { ViewData["Call"] = searchGuestbook.Call; var integerCall = int.Parse(searchGuestbook.Call); if (guestbooks.Count == 0) { guestbooks = db.Guestbooks.Where(guestbook => guestbook.Score == integerCall).ToList(); } else { guestbooks = guestbooks.Where(guestbook => guestbook.Score == integerCall).ToList(); } } else { ViewData["Call"] = ""; } if (!searchGuestbook.Sign.IsNullOrWhiteSpace() && searchGuestbook.Sign != string.Empty) { ViewData["Sign"] = searchGuestbook.Sign; var integerSign = int.Parse(searchGuestbook.Sign); if (guestbooks.Count == 0) { guestbooks = db.Guestbooks.Where(guestbook => guestbook.Score == integerSign).ToList(); } else { guestbooks = guestbooks.Where(guestbook => guestbook.Score == integerSign).ToList(); } } else { ViewData["Sign"] = ""; } if (!searchGuestbook.Sign.IsNullOrWhiteSpace() && searchGuestbook.Sign != string.Empty) { ViewData["Group"] = searchGuestbook.Group; var integerGroup = int.Parse(searchGuestbook.Group); if (guestbooks.Count == 0) { guestbooks = db.Guestbooks.Where(guestbook => guestbook.Score == integerGroup).ToList(); } else { guestbooks = guestbooks.Where(guestbook => guestbook.Score == integerGroup).ToList(); } } else { ViewData["Group"] = ""; } ViewData["OrderType"] = searchGuestbook.OrderType; ViewData["Page"] = searchGuestbook.Page; return(PartialView(GuestbooksOrder(guestbooks.ToPagedList(searchGuestbook.Page, PAGE_SIZE).ToList(), searchGuestbook))); } else { ViewData["Keyword"] = ""; ViewData["Score"] = ""; ViewData["Call"] = ""; ViewData["Sign"] = ""; ViewData["Group"] = ""; ViewData["Page"] = 1; return(PartialView(GuestbooksOrder(db.Guestbooks.ToPagedList(1, PAGE_SIZE).ToList(), searchGuestbook))); } }
public ActionResult Index([Bind(Include = "Keyword,Score,Call,Sign,Group")] SearchGuestbook searchGuestbook) { return(RedirectToAction("Search", searchGuestbook)); }
public ActionResult PageList(SearchGuestbook searchGuestbook) { return(PartialView(searchGuestbook)); }
private GuestbookToView GuestbooksOrder(List <Guestbook> guestbooks, SearchGuestbook searchGuestbook) { switch (searchGuestbook.OrderType) { case 1: return(new GuestbookToView { GuestbookList = guestbooks.OrderByDescending(guestbook => guestbook.Call).ToList(), SearchGuestbook = searchGuestbook }); case 2: return(new GuestbookToView { GuestbookList = guestbooks.OrderByDescending(guestbook => guestbook.Sign).ToList(), SearchGuestbook = searchGuestbook }); case 3: return(new GuestbookToView { GuestbookList = guestbooks.OrderByDescending(guestbook => guestbook.Group).ToList(), SearchGuestbook = searchGuestbook }); case -1: return(new GuestbookToView { GuestbookList = guestbooks.OrderBy(guestbook => guestbook.Score).ToList(), SearchGuestbook = searchGuestbook }); case -2: return(new GuestbookToView { GuestbookList = guestbooks.OrderBy(guestbook => guestbook.Call).ToList(), SearchGuestbook = searchGuestbook }); case -3: return(new GuestbookToView { GuestbookList = guestbooks.OrderBy(guestbook => guestbook.Sign).ToList(), SearchGuestbook = searchGuestbook }); case -4: return(new GuestbookToView { GuestbookList = guestbooks.OrderBy(guestbook => guestbook.Group).ToList(), SearchGuestbook = searchGuestbook }); default: return(new GuestbookToView { GuestbookList = guestbooks.OrderByDescending(guestbook => guestbook.Score).ToList(), SearchGuestbook = searchGuestbook }); } }