public IActionResult Ads(string id)
        {
            if (User.IsInRole("Admin"))
            {
                ICollection <Ad> ads = _repo.GetAllAds();

                return(View(ads));
            }
            else
            {
                ICollection <Ad> ads = _repo.GetAdsByUser(id);

                return(View(ads));
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> Index(Guid user,
                                                DateTime from,
                                                DateTime to,
                                                string searchStr,
                                                string sortStr,
                                                int pageSize = 3,
                                                int page     = 1)
        {
            ViewBag.Users = new SelectList(_userRepository.GetAllUsers(), "Id", "Name");

            IQueryable <Ad> source = _adRepository.GetAllAds();

            //filtering
            if (user != Guid.Empty)
            {
                source = source.Where(x => x.UserId == user);
            }
            if (from != DateTime.MinValue && to != DateTime.MinValue)
            {
                source = source.Where(x => x.CreationDate > from && x.CreationDate < to);
            }
            if (!string.IsNullOrEmpty(searchStr))
            {
                source = source.Where(x => x.Content.Contains(searchStr) ||
                                      x.User.Name.Contains(searchStr));
            }

            ViewBag.Num      = sortStr == "numAsc" ? "numDesc" : "numAsc";
            ViewBag.Date     = sortStr == "dateAsc" ? "dateDesc" : "dateAsc";
            ViewBag.Cont     = sortStr == "contAsc" ? "contDesc" : "contAsc";
            ViewBag.Rate     = sortStr == "rateAsc" ? "rateDesc" : "rateAsc";
            ViewBag.Usr      = sortStr == "usrAsc" ? "usrDesc" : "usrAsc";
            ViewBag.OrderBy  = sortStr;
            ViewBag.PageSize = pageSize;
            switch (sortStr)
            {
            case "numAsc":
                source = source.OrderBy(x => x.Number);
                break;

            case "numDesc":
                source = source.OrderByDescending(x => x.Number);
                break;

            case "dateAsc":
                source = source.OrderBy(x => x.CreationDate);
                break;

            case "dateDesc":
                source = source.OrderByDescending(x => x.CreationDate);
                break;

            case "contAsc":
                source = source.OrderBy(x => x.Content);
                break;

            case "contDesc":
                source = source.OrderByDescending(x => x.Content);
                break;

            case "rateAsc":
                source = source.OrderBy(x => x.Rating);
                break;

            case "rateDesc":
                source = source.OrderByDescending(x => x.Rating);
                break;

            case "usrAsc":
                source = source.OrderBy(x => x.User.Name);
                break;

            case "usrDesc":
                source = source.OrderByDescending(x => x.User.Name);
                break;

            default: break;
            }

            //model.;
            var T = new IndexViewModel
            {
                Ads             = await PaginatedList <Ad> .CreateAsync(source, page, pageSize),
                FilterViewModel = new FilterViewModel(_userRepository.GetAllUsers().ToList(), user, searchStr, from, to)
            };

            return(View(T));
        }
Esempio n. 3
0
 public IList <BaseAd> GetAllAds()
 {
     return(_adRepository.GetAllAds());
 }