Exemple #1
0
        public ActionResult New()
        {
            var note      = new Note();
            var viewModel = new SearchNoteViewModel()
            {
            };

            return(View("NewDetailsNote", note));
        }
Exemple #2
0
        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));
        }