public ActionResult GetFilterSearchNotes(int FK_Type = 0, int FK_Category = 0, int FK_Country = 0, string FK_University = null, string FK_Course = null, int PageNumber = 1, int PageSize = 9, string search = null, string rating = null) { SearchNotesViewModel Model = new SearchNotesViewModel(); if (string.IsNullOrEmpty(FK_University)) { FK_University = null; } if (string.IsNullOrEmpty(FK_Course)) { FK_Course = null; } if (string.IsNullOrEmpty(search)) { search = null; } if (string.IsNullOrEmpty(rating)) { rating = null; } Model.PageNumber = PageNumber; Model.PageSize = PageSize; List <NewGetSellerNotesDetails_Result> getSellNotes = db.NewGetSellerNotesDetails(FK_Type, FK_Category, FK_Country, FK_University, FK_Course, PageSize, PageNumber, search, rating).ToList(); Model.NewGetSellerNotesDetails_Result = getSellNotes; foreach (var data in getSellNotes) { Model.TotalRecords = (int)data.TotalCount; } return(PartialView("_SellNotes", Model)); }
// GET: SearchNotes public ActionResult Index() { SearchNotesViewModel SerachNotes = new SearchNotesViewModel(); SerachNotes.countries = db.Countries.Where(x => x.IsActive == true).ToList(); SerachNotes.noteTypes = db.NoteTypes.Where(x => x.IsActive == true).ToList(); SerachNotes.noteCategories = db.NoteCategories.Where(x => x.IsActive == true).ToList(); int approve = Convert.ToInt32(Enums.ReferenceNoteStatus.Approved); SerachNotes.sellNotes = db.SellNotes.Where(x => x.Status == approve).ToList(); SerachNotes.UniversityNames = db.SellNotes.Select(x => new SelectListItem() { Value = x.UniversityName, Text = x.UniversityName }).Distinct().ToList(); SerachNotes.Courses = db.SellNotes.Select(x => new SelectListItem() { Value = x.Course, Text = x.Course }).Distinct().ToList(); return(View(SerachNotes)); }
public IActionResult SearchNote(SearchNotesViewModel model) { if (!this.ModelState.IsValid) { return(View(nameof(Notes), model)); } try { return(RedirectToAction(nameof(Notes), new { entityId = model.EntityId, searchedStringInText = model.SearchedStringInText, categoryId = model.SearchCategoryId, exactDate = model.ExactDate?.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture), fromDate = model.FromDate?.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture), toDate = model.ToDate?.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture), creator = model.Creator, searchByStatus = model.SearchByStatus, sortOption = model.SortOption, sortIsAscending = model.SortIsAscending })); } catch (ArgumentException ex) { this.ModelState.AddModelError("Error", ex.Message); return(View(nameof(Notes), model)); } }
public ActionResult Search(string search, string type, string category, string university, string course, string country, string ratings, int page = 1) { // if is logged iusern and logged in user is not member then redirect to admin dashboard if (User.Identity.IsAuthenticated) { var user = context.Users.Where(x => x.EmailID == User.Identity.Name).FirstOrDefault(); if (user.RoleID != context.UserRoles.Where(x => x.Name.ToLower() == "member").Select(x => x.ID).FirstOrDefault()) { return(RedirectToAction("Dashboard", "Admin")); } } // Viewbag for active class in navigation ViewBag.SearchNotes = "active"; // viewbag for search results ViewBag.Search = search; ViewBag.Category = category; ViewBag.Type = type; ViewBag.University = university; ViewBag.Course = course; ViewBag.Country = country; ViewBag.Rating = ratings; // viewbag for dropdown lists ViewBag.CategoryList = context.NoteCategories.ToList(); ViewBag.TypeList = context.NoteTypes.ToList(); ViewBag.CountryList = context.Countries.ToList(); ViewBag.UniversityList = context.SellerNotes.Where(x => x.IsActive == true && x.UniversityName != null && x.Status == 9).Select(x => x.UniversityName).Distinct(); ViewBag.CourseList = context.SellerNotes.Where(x => x.IsActive == true && x.Course != null && x.Status == 9).Select(x => x.Course).Distinct(); ViewBag.RatingList = new List <SelectListItem> { new SelectListItem { Text = "1+", Value = "1" }, new SelectListItem { Text = "2+", Value = "2" }, new SelectListItem { Text = "3+", Value = "3" }, new SelectListItem { Text = "4+", Value = "4" }, new SelectListItem { Text = "5", Value = "5" } }; // get published notes var noteslist = context.SellerNotes.Where(x => x.Status == 9); // if search is not empty if (!String.IsNullOrEmpty(search)) { noteslist = noteslist.Where(x => x.Title.ToLower().Contains(search.ToLower()) || x.NoteCategories.Name.ToLower().Contains(search.ToLower()) ); } // if note type is not empty if (!String.IsNullOrEmpty(type)) { noteslist = noteslist.Where(x => x.NoteType.ToString().ToLower().Contains(type.ToLower())); } // if note category is nnot empty if (!String.IsNullOrEmpty(category)) { noteslist = noteslist.Where(x => x.Category.ToString().ToLower().Contains(category.ToLower())); } // if university is not empty if (!String.IsNullOrEmpty(university)) { noteslist = noteslist.Where(x => x.UniversityName.ToLower().Contains(university.ToLower())); } // if course is not empty if (!String.IsNullOrEmpty(course)) { noteslist = noteslist.Where(x => x.Course.ToLower().Contains(course.ToLower())); } // if country is not empty if (!String.IsNullOrEmpty(country)) { noteslist = noteslist.Where(x => x.Country.ToString().ToLower().Contains(country.ToLower())); } // create list object of search notes view model List <SearchNotesViewModel> searchnoteslist = new List <SearchNotesViewModel>(); // if rating is empty if (String.IsNullOrEmpty(ratings)) { foreach (var item in noteslist) { // get reviews var review = context.SellerNotesReviews.Where(x => x.NoteID == item.ID && x.IsActive == true).Select(x => x.Ratings); // count reviews var totalreview = review.Count(); // get average reviews var avgreview = totalreview > 0 ? Math.Ceiling(review.Average()) : 0; // get spam report count var spamcount = context.SellerNotesReportedIssues.Where(x => x.NoteID == item.ID).Count(); // create searchnotesviewmodel object SearchNotesViewModel note = new SearchNotesViewModel() { Note = item, AverageRating = Convert.ToInt32(avgreview), TotalRating = totalreview, TotalSpam = spamcount }; // add object into list searchnoteslist.Add(note); } } // if rating is not empty else { foreach (var item in noteslist) { // get reviews var review = context.SellerNotesReviews.Where(x => x.NoteID == item.ID).Select(x => x.Ratings); // count reviews var totalreview = review.Count(); // get average reviews var avgreview = totalreview > 0 ? Math.Ceiling(review.Average()) : 0; // get spam report count var spamcount = context.SellerNotesReportedIssues.Where(x => x.NoteID == item.ID).Count(); // check if average review is greater than or equal to rating if (avgreview >= Convert.ToInt32(ratings)) { // create searchnotesviewmodel object SearchNotesViewModel note = new SearchNotesViewModel() { Note = item, AverageRating = Convert.ToInt32(avgreview), TotalRating = totalreview, TotalSpam = spamcount }; // add object into list searchnoteslist.Add(note); } } } // page number ViewBag.PageNumber = page; // count total pages ViewBag.TotalPages = Math.Ceiling(searchnoteslist.Count() / 9.0); // show record according to pagination IEnumerable <SearchNotesViewModel> result = searchnoteslist.AsEnumerable().Skip((page - 1) * 9).Take(9); // total result count ViewBag.ResultCount = searchnoteslist.Count(); return(View(result)); }
public ActionResult Search(string search, string type, string category, string university, string course, string country, string ratings, int?page) { ViewBag.SearchNotes = "active"; // viewbag for search results ViewBag.Search = search; ViewBag.Category = category; ViewBag.Type = type; ViewBag.University = university; ViewBag.Course = course; ViewBag.Country = country; ViewBag.Rating = ratings; ViewBag.CategoryList = context.NoteCategories.Where(x => x.IsActive == true).ToList(); ViewBag.TypeList = context.NoteTypes.Where(x => x.IsActive == true).ToList(); ViewBag.CountryList = context.Countries.Where(x => x.IsActive == true).ToList(); ViewBag.UniversityList = context.SellerNotes.Where(x => x.IsActive == true && x.UniversityName != null && x.Status == 9).Select(x => x.UniversityName).Distinct(); ViewBag.CourseList = context.SellerNotes.Where(x => x.IsActive == true && x.Course != null && x.Status == 9).Select(x => x.Course).Distinct(); ViewBag.RatingList = new List <SelectListItem> { new SelectListItem { Text = "1+", Value = "1" }, new SelectListItem { Text = "2+", Value = "2" }, new SelectListItem { Text = "3+", Value = "3" }, new SelectListItem { Text = "4+", Value = "4" }, new SelectListItem { Text = "5", Value = "5" } }; //Collect Published Notes details var notes = context.SellerNotes.Where(x => x.Status == 9); //If Search Is Not Empty if (!String.IsNullOrEmpty(search)) { notes = notes.Where(x => x.Title.ToLower().Contains(search.ToLower()) || x.NoteCategories.Name.ToLower().Contains(search.ToLower()) ); } if (!String.IsNullOrEmpty(type)) { notes = notes.Where(x => x.NoteType.ToString().ToLower().Contains(type.ToLower())); //In SellerNotes table we defined NoType As Int So We Write .ToString() } if (!String.IsNullOrEmpty(category)) { notes = notes.Where(x => x.Category.ToString().ToLower().Contains(category.ToLower())); } if (!String.IsNullOrEmpty(university)) { notes = notes.Where(x => x.UniversityName.ToLower().Contains(university.ToLower())); } if (!String.IsNullOrEmpty(course)) { notes = notes.Where(x => x.Course.ToLower().Contains(course.ToLower())); } if (!String.IsNullOrEmpty(country)) { notes = notes.Where(x => x.Country.ToString().ToLower().Contains(country.ToLower())); } List <SearchNotesViewModel> searchnoteslist = new List <SearchNotesViewModel>(); // if rating is empty if (String.IsNullOrEmpty(ratings)) { foreach (var item in notes) { //fetch rating from table var review = context.SellerNotesReviews.Where(x => x.NoteID == item.ID && x.IsActive == true).Select(x => x.Ratings); var totalreview = review.Count(); var avgreview = totalreview > 0 ? Math.Ceiling(review.Average()) : 0; // get spam report count var inappropriate_count = context.SellerNotesReportedIssues.Where(x => x.NoteID == item.ID).Count(); SearchNotesViewModel note = new SearchNotesViewModel() { Note = item, AverageRating = Convert.ToInt32(avgreview), TotalRating = totalreview, TotalSpam = inappropriate_count }; searchnoteslist.Add(note); } } // if rating is not empty else { foreach (var item in notes) { var review = context.SellerNotesReviews.Where(x => x.NoteID == item.ID).Select(x => x.Ratings); var totalreview = review.Count(); var avgreview = totalreview > 0 ? Math.Ceiling(review.Average()) : 0; var spamcount = context.SellerNotesReportedIssues.Where(x => x.NoteID == item.ID).Count(); // check if average review is greater than or equal to given input rating //Add Those Notes only Whose avgreview is > ratings if (avgreview >= Convert.ToInt32(ratings)) { SearchNotesViewModel note = new SearchNotesViewModel() { Note = item, AverageRating = Convert.ToInt32(avgreview), TotalRating = totalreview, TotalSpam = spamcount }; searchnoteslist.Add(note); } } } // page number ViewBag.PageNumber = page; /* count total pages * ViewBag.TotalPages = Math.Ceiling(searchnoteslist.Count() / 9.0); * // show record according to pagination * IEnumerable<SearchNotesViewModel> result = searchnoteslist.AsEnumerable().Skip((page - 1) * 9).Take(9); */ var result = new List <SearchNotesViewModel>(); result = searchnoteslist.ToList(); // total Number Of Notes In Search Page ViewBag.ResultCount = searchnoteslist.Count(); // return View(result); return(View(result.ToList().AsQueryable().ToPagedList(page ?? 1, 10))); }