/// <summary> /// /// </summary> /// <param name="options"></param> /// <returns></returns> public JsonResult Search(TutorialSearchViewModel options) { Response response; try { using (var db = new KiaGalleryContext()) { var query = db.Tutorial.Select(x => x); if (!string.IsNullOrEmpty(options.word)) { query = query.Where(x => x.Title.Contains(options.word)); } if (options.tutorialType != null && options.tutorialType >= 0) { query = query.Where(x => x.TutorialType == options.tutorialType); } var dataCount = query.Count(); var list = query.OrderByDescending(x => x.Id).Skip(options.page * options.count).Take(options.count).Select(x => new TutorialViewModel { id = x.Id, title = x.Title, fileName = x.FileName, tutorialType = x.TutorialType, active = x.Active, description = x.Description, }).ToList(); list.ForEach(x => { x.tutorialTypeTitle = Enums.GetTitle(x.tutorialType); }); response = new Response() { status = 200, data = new { list = list, pageCount = Math.Ceiling((double)dataCount / options.count), count = dataCount, page = options.page + 1 } }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
/// <summary> /// /// </summary> /// <param name="options"></param> /// <returns></returns> public JsonResult GetVideoList(TutorialSearchViewModel options) { Response response; try { using (var db = new KiaGalleryContext()) { var query = db.Tutorial.Where(x => x.Active == true && x.TutorialType == TutorialType.Video); if (!string.IsNullOrEmpty(options.word)) { query = query.Where(x => x.Title.Contains(options.word)); } var dataCount = query.Count(); var list = query.OrderByDescending(x => x.CreateDate).Skip(options.page * options.count).Take(options.count).Select(x => new TutorialViewModel { title = x.Title, fileName = x.FileName, tutorialType = x.TutorialType, link = "/upload/tutorial/" + x.FileName, coverLink = "/upload/tutorialCover/" + x.VideoCoverFileName, description = x.Description }).ToList(); response = new Response() { status = 200, data = new { list = list, pageCount = Math.Ceiling((double)dataCount / options.count), count = dataCount, page = options.page + 1 } }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }