コード例 #1
0
        public ActionResult ManageAds(string SearchString, int page = 1)
        {
            //string uId = User.Identity.GetUserId();
            ViewBag.Views = db.Views;
            var Ads = db.Ads.OfType <Ad>().Where(ad => !ad.Confirmed);

            if (!String.IsNullOrEmpty(SearchString))
            {
                Ads = Ads.Where(a => a.City.Name.ToUpper().Contains(SearchString.ToUpper()) ||
                                a.AdDescribtion.ToUpper().Contains(SearchString.ToUpper()) ||
                                a.AdTitle.ToUpper().Contains(SearchString.ToUpper()));
            }

            //pagination steps
            int            pageSize = 6;
            var            pager    = new Pager(Ads.Count(), page, pageSize);
            MyAdsViewModel MyAds    = new MyAdsViewModel()
            {
                Ads          = Ads.OrderBy(a => a.Date).Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize).ToList(),
                Pager        = pager,
                SearchString = SearchString,
            };

            return(View(MyAds));
        }
コード例 #2
0
        public async Task <ActionResult <MyAdsViewModel> > List()
        {
            MyAdsViewModel vm = new MyAdsViewModel();

            vm.Families = (await _adsUnitOfWork.FamiliesRepository.GetAll()).ToList();
            var countryTmp = (await functionalUnitOfWork.CountriesRepository.GetCountries("fr")).ToList();

            vm.Countries = _mapper.Map <List <Country>, List <CountryViewModel> >(countryTmp);
            var adtmp = (await functionalUnitOfWork.AdRepository.GetAll(true)).ToList();

            vm.Ads = _mapper.Map <List <AdModel>, List <AdViewModel> >(adtmp);

            return(Ok(vm));
        }
コード例 #3
0
        private async Task RefeshResultFilter()
        {
            MyAdsViewModel x = new MyAdsViewModel();

            x.ListCodeCountrySelected = RefAds?.Countries?.Where(x => x.Selected).Select(c => c.Eeacode).ToList() ?? new List <string>();
            x.ListIdCategorySelected  = FamilySelected?.Categories.Where(x => x.Selected).Select(c => c.CategoryId).ToList() ?? new List <Guid>();
            x.searchTxt = searchTxt ?? "";

            var getFamily = await HttpClient.PostAsJsonAsync($"/api/Ads/search", x);

            getFamily.EnsureSuccessStatusCode();
            var json = await getFamily.Content.ReadAsStringAsync();

            AdsTmp = RefAds.Ads = JsonConvert.DeserializeObject <List <AdViewModel> >(json);

            await InvokeAsync(StateHasChanged);
        }
コード例 #4
0
        public ActionResult MyAds(string SearchString, string sortBy, int page = 1)
        {
            string uId     = User.Identity.GetUserId();
            string adminId = db.Users.Where(u => u.UserType.Equals("Admin")).Select(u => u.Id).FirstOrDefault();

            ViewBag.adminId = adminId;
            var Ads = db.Ads.OfType <Ad>().Where(ad => ad.UserId.Equals(uId));

            if (!String.IsNullOrEmpty(SearchString))
            {
                Ads = Ads.Where(a => a.City.Name.ToUpper().Contains(SearchString.ToUpper()) ||
                                a.AdDescribtion.ToUpper().Contains(SearchString.ToUpper()) ||
                                a.AdTitle.ToUpper().Contains(SearchString.ToUpper()));
            }

            switch (sortBy)
            {
            case "Active":
                Ads = Ads.Where(a => a.Confirmed);
                break;

            case "Inactive":
                Ads = Ads.Where(a => !a.Confirmed);
                break;

            default:
                break;
            }

            //pagination steps
            int            pageSize = 6;
            var            pager    = new Pager(Ads.Count(), page, pageSize);
            MyAdsViewModel MyAds    = new MyAdsViewModel()
            {
                Ads          = Ads.OrderBy(a => a.Date).Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize).ToList(),
                Pager        = pager,
                SearchString = SearchString,
            };

            MyAds.Sorts = new Dictionary <string, string>
            {
                { "Active", "Active" },
                { "Inactive", "Inactive" }
            };
            return(View(MyAds));
        }
コード例 #5
0
        protected override async Task OnInitializedAsync()
        {
            await jSRuntime.InvokeVoidAsync("outsideClickHandler", "dropdownmenu", DotNetObjectReference.Create(this));

            AuthenticateSate = await authenticationStateTask;

            if (AuthenticateSate.User.Identity.IsAuthenticated)
            {
                User = AuthenticateSate.User;
            }

            var getAds = await HttpClient.GetAsync("/api/Ads");

            getAds.EnsureSuccessStatusCode();
            var json = await getAds.Content.ReadAsStringAsync();

            RefAds = JsonConvert.DeserializeObject <MyAdsViewModel>(json);
            AdsTmp = RefAds.Ads.Where(a => a.OwnerId == User.Id).ToList();
            await base.OnInitializedAsync();
        }
コード例 #6
0
        public async Task <ActionResult> search(MyAdsViewModel model)
        {
            try
            {
                var listIdsUsers = _userManager.Users.Where(x => (model.ListCodeCountrySelected.Contains(x.Country) || model.ListCodeCountrySelected.Count == 0) && x.EmailConfirmed).Select(c => c.Id).ToList();
                var listAd       = await functionalUnitOfWork.AdRepository.Where(x => listIdsUsers.Contains(x.OwnerId) && x.Title.Contains(model.searchTxt));

                var listFiltered = await _adsUnitOfWork.CategoryAdRepository.Where(x => listAd.Select(c => c.Id).Contains(x.AdId) &&
                                                                                   (model.ListIdCategorySelected.Contains(x.CategoryId) || model.ListIdCategorySelected.Count == 0));

                listAd = listAd.Where(x => listFiltered.Select(c => c.AdId).Contains(x.Id)).ToList();

                return(Ok(listAd));
            }
            catch (Exception ex)
            {
                throw;
            }

            return(Ok());
        }