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));
        }
Example #3
0
        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));
            }
        }
Example #4
0
        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));
        }
Example #5
0
        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)));
        }