public ActionResult New() { var note = new Note(); var viewModel = new SearchNoteViewModel() { }; return(View("NewDetailsNote", note)); }
public ViewResult Index(Note note) { var notes = _context.Notes.Where(n => n.IsActive == true).Include(n => n.Contractor) .Include(n => n.ContractorEmployee).ToList(); if (note.NoteName != null) { if (!String.IsNullOrEmpty(note.NoteName)) { notes = notes.Where(n => n.NoteName.ToLower().StartsWith(note.NoteName.ToLower())).ToList(); } } if (note.Contractor != null) { if (!String.IsNullOrEmpty(note.Contractor.Name)) { notes = notes.Where(n => n.Contractor.Name == note.Contractor.Name).ToList(); } } if (note.ContractorEmployee != null) { if (!String.IsNullOrEmpty(note.ContractorEmployee.FullName)) { notes = notes.Where(n => n.ContractorEmployee.FullName == note.ContractorEmployee.FullName).ToList(); } } var searchNoteViewModel = new SearchNoteViewModel() { Notes = notes, Contractors = new List <Contractor>(), Contractor = new Contractor(), ContractorEmployee = new ContractorEmployee() }; return(View(searchNoteViewModel)); }
public ActionResult SearchNotes(string search, string type, string category, string university, string course, string country, string ratings, int page = 1) { ViewBag.navclass = "white-nav"; ViewBag.SearchNotes = "active"; ViewBag.Search = search; ViewBag.Category = category; ViewBag.Type = type; ViewBag.University = university; ViewBag.Course = course; ViewBag.Country = country; ViewBag.Rating = ratings; //Fetch the data ViewBag.categoryList = db.NoteCategories.Where(x => x.IsActive == true).ToList(); ViewBag.typeList = db.NoteTypes.Where(x => x.IsActive == true).ToList(); ViewBag.universityList = db.SellerNotes.Where(x => x.IsActive == true && x.Status == 9 && x.UniversityName != null).Select(p => p.UniversityName).OrderBy(p => p).ToList().Distinct(); ViewBag.courseList = db.SellerNotes.Where(x => x.IsActive == true && x.Status == 9 && x.Course != null).Select(p => p.Course).OrderBy(p => p).ToList().Distinct(); ViewBag.countryList = db.Countries.Where(x => x.IsActive == true).ToList(); 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" } }; var noteslist = db.SellerNotes.Where(x => x.Status == 9 && x.IsActive == true); //only published note //fetch data based on filters if (!String.IsNullOrEmpty(search)) { noteslist = noteslist.Where(x => x.Title.ToLower().Contains(search.ToLower()) || x.NoteCategories.Name.ToLower().Contains(search.ToLower())); } if (!String.IsNullOrEmpty(type)) { noteslist = noteslist.Where(x => x.NoteType.ToString().ToLower().Contains(type.ToLower())); } if (!String.IsNullOrEmpty(category)) { noteslist = noteslist.Where(x => x.Category.ToString().ToLower().Contains(category.ToLower())); } if (!String.IsNullOrEmpty(university)) { noteslist = noteslist.Where(x => x.UniversityName.ToLower().Contains(university.ToLower())); } if (!String.IsNullOrEmpty(course)) { noteslist = noteslist.Where(x => x.Course.ToLower().Contains(course.ToLower())); } if (!String.IsNullOrEmpty(country)) { noteslist = noteslist.Where(x => x.Country.ToString().ToLower().Contains(country.ToLower())); } List <SearchNoteViewModel> searchNotesList = new List <SearchNoteViewModel>(); //count total and avg review if (String.IsNullOrEmpty(ratings)) { foreach (var item in noteslist) { var review = db.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; var spamcount = db.SellerNotesReportedIssues.Where(x => x.NoteID == item.ID).Count(); SearchNoteViewModel note = new SearchNoteViewModel() { note = item, averageRating = Convert.ToInt32(avgreview), totalRating = totalreview, totalSpam = spamcount }; searchNotesList.Add(note); } } else { foreach (var item in noteslist) { var review = db.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; var spamcount = db.SellerNotesReportedIssues.Where(x => x.NoteID == item.ID).Count(); if (avgreview >= Convert.ToInt32(ratings)) { SearchNoteViewModel note = new SearchNoteViewModel() { note = item, averageRating = Convert.ToInt32(avgreview), totalRating = totalreview, totalSpam = spamcount }; searchNotesList.Add(note); } } } //pagination var pager = new Pager(noteslist.Count(), page, 9); ViewBag.currentPage = pager.CurrentPage; ViewBag.endPage = pager.EndPage; ViewBag.startpage = pager.StartPage; IEnumerable <SearchNoteViewModel> result = searchNotesList.AsEnumerable().Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize); ViewBag.resultCount = searchNotesList.Count(); return(View(result)); }