Пример #1
0
        public async Task <IEnumerable <Business> > GetBusinesses(int pageIndex, int pageSize)
        {
            var list = _businessRepository.GetBusinesses(new Domain.Models.Paging {
                Limit = pageSize
            });

            return(list);
        }
Пример #2
0
        public async Task <IActionResult> GetBusinesses([FromQuery] PageParams pageParams)
        {
            var businesses = await _repo.GetBusinesses(pageParams);

            var businessesToReturn = _mapper.Map <IEnumerable <BusinessForListDto> >(businesses);

            Response.AddPagination(businesses.CurrentPage, businesses.PageSize,
                                   businesses.TotalCount, businesses.TotalPages);

            return(Ok(businessesToReturn));
        }
Пример #3
0
        public ActionResult Index()
        {
            if (SessionHelper.CurrentEntity.IsNot(EntityTypeEnum.Citizen))
            {
                return(RedirectBackWithError("You can view your businesses only as citizen!"));
            }

            var businesses = businessRepository.GetBusinesses(SessionHelper.CurrentEntity.EntityID);

            var vm = new BusinessIndexViewModel(businesses);

            return(View(vm));
        }
Пример #4
0
        private async Task <(string controller, int pageId)> Resolve(
            string language,
            string routePage,
            string routeRegion,
            List <RegionElasticModel> regions)
        {
            if (string.IsNullOrEmpty(routePage))
            {
                return(_defaultController, -1);
            }

            var normalizedPage = routePage.ToLowerInvariant();

            var activeRegion   = regions?.FirstOrDefault(r => r.UrlPath == routeRegion);
            var regionPagesUrl = activeRegion?.PagesApiPath ?? CmsVariable.DefaultPageApiPath;

            var pages = await _cmsApiProxy.GetPages(language, regionPagesUrl);

            var page       = pages.FirstOrDefault(p => p.Slug == normalizedPage);
            var controller = page?.Page_type?.FirstOrDefault()?.Template_name;
            var pageId     = page?.Id ?? -1;

            if (controller == null)
            {
                var businessPagePartialUrl = $"/{normalizedPage}";
                var languageCode           = string.IsNullOrEmpty(language) ? CmsVariable.DefaultLanguageCode : language;
                var businesses             = await BusinessRepository.GetBusinesses(randomSeed : 0, from : 0, size : CmsVariable.ElasticSize, languageCode : languageCode);

                var business = businesses?.Items?.FirstOrDefault(b => b.Business.DetailPageLink.EndsWith(businessPagePartialUrl));
                if (business?.Business != null)
                {
                    _logger.LogInformation("Found business from {PageUrl} with language code {LanguageCode} and region {RouteRegion}. Business language code {BusinessLanguageCode}, city id:{Region}, url:{Url}.",
                                           businessPagePartialUrl, languageCode, routeRegion, business.Business.LanguageCode, business.Business.City.Name, business.Business.DetailPageLink);
                    pageId = business.Business.Id;
                    var templateName = business.Business.PageType?.Name;

                    if (!string.IsNullOrEmpty(templateName))
                    {
                        controller = templateName;
                    }
                }
            }

            if (controller == null)
            {
                controller = _errorController;
            }

            return(controller, pageId);
        }
        public async Task <IActionResult> GetBusinesses([FromQuery] RequestBusinessApiModel model)
        {
            var       from         = model.Page * CmsVariable.ItemsPerPage;
            const int size         = CmsVariable.ItemsPerPage;
            var       languageCode = string.IsNullOrEmpty(model.Lang) ? CmsVariable.DefaultLanguageCode : model.Lang;
            var       regionIds    = await GetRegionsIdString(languageCode, model.Region);

            var response = await _businessRepository.GetBusinesses(
                model.RandomSeed,
                from,
                size,
                query : model.Query,
                tags : model.Tags,
                transactionTags : model.TransactionTags,
                regionIds : regionIds,
                digital : model.Digital?true : (bool?)null,
                openNow : model.OpenNow,
                sorting : model.Sorting,
                languageCode : languageCode);

            var mainTags = await ReturnTags(CmsVariable.MainSlugTagGroupName, response.TagCounts?.ToList(), languageCode, "main");

            //var subTags = new List<TagApiModel>();
            if (!string.IsNullOrEmpty(model.Tags))
            {
                var subTags = await ReturnTags(CmsVariable.SubSlugTagGroupName, response.TagCounts?.ToList(), languageCode, "sub");

                mainTags.AddRange(subTags);
            }

            return(Ok(new ResponseBusinessApiModel
            {
                Items = response.Items.Select(Map).ToList(),
                ItemsPerPage = CmsVariable.ItemsPerPage,
                Total = (int)response.Total,
                FilterTags = mainTags
                             //MainTags = mainTags,
                             //SubTags = subTags
            }));
        }