예제 #1
0
        public virtual ActionResult LanguageSwitch(string storeNumber)
        {
            var baseUrl = RequestUtils.GetBaseUrl(Request).ToString();

            if (storeNumber == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            var storeViewModel = StoreViewService.GetStoreViewModelAsync(new GetStoreByNumberParam
            {
                BaseUrl          = baseUrl,
                CultureInfo      = ComposerContext.CultureInfo,
                Scope            = ComposerContext.Scope,
                IncludeAddresses = false,
                IncludeSchedules = false,
                StoreNumber      = storeNumber
            }).Result;

            if (storeViewModel == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            var languageSwitchViewModel = LanguageSwitchService.GetViewModel(cultureInfo => BuildUrl(
                                                                                 baseUrl,
                                                                                 cultureInfo,
                                                                                 storeViewModel.LocalizedDisplayNames[cultureInfo.Name],
                                                                                 storeViewModel.Number),
                                                                             ComposerContext.CultureInfo);

            return(View("LanguageSwitch", languageSwitchViewModel));
        }
예제 #2
0
        public virtual ActionResult Breadcrumb(string storeNumber)
        {
            if (string.IsNullOrEmpty(storeNumber))
            {
                return(View());
            }
            var breadcrumbViewModel = BreadcrumbViewService.CreateBreadcrumbViewModel(new GetBreadcrumbParam
            {
                CurrentPageId = SitemapNavigator.CurrentPageId.ToString(),
                CultureInfo   = ComposerContext.CultureInfo
            });
            var model = StoreViewService.GetStoreViewModelAsync(new GetStoreByNumberParam
            {
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo,
                StoreNumber = storeNumber,
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString(),
            }).Result;

            if (model == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            if (!string.IsNullOrEmpty(model.LocalizedDisplayName))
            {
                breadcrumbViewModel.ActivePageName = model.LocalizedDisplayName;
            }

            return(View(breadcrumbViewModel));
        }
        public virtual async Task <IHttpActionResult> GetStores()
        {
            var vm = await StoreViewService.GetStoresForInStorePickupViewModelAsync(new GetStoresForInStorePickupViewModelParam
            {
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString(),
                CultureInfo = ComposerContext.CultureInfo,
                Scope       = ComposerContext.Scope
            });

            return(Ok(vm));
        }
예제 #4
0
        public virtual async Task <IHttpActionResult> GetStoresByLocation(StoresRequest request)
        {
            var vm = await StoreViewService.GetAllStoresViewModelAsync(new GetStoresParam
            {
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString(),
                CultureInfo = ComposerContext.CultureInfo,
                Scope       = ComposerContext.Scope,
                SearchPoint = request.SearchPoint
            });

            return(Ok(vm));
        }
예제 #5
0
        public virtual async Task <IHttpActionResult> GetStore(StoreRequest request)
        {
            var baseUrl = RequestUtils.GetBaseUrl(Request).ToString();
            var vm      = await StoreViewService.GetStoreViewModelAsync(new GetStoreByNumberParam
            {
                BaseUrl     = baseUrl,
                CultureInfo = ComposerContext.CultureInfo,
                Scope       = ComposerContext.Scope,
                StoreNumber = request.StoreNumber
            });

            return(Ok(vm));
        }
예제 #6
0
        protected virtual async Task <StoreViewModel> GetStoreViewModelAsync(string storeNumber)
        {
            if (string.IsNullOrWhiteSpace(storeNumber))
            {
                return(ContextHelper.HandlePreviewMode(() => GetStoreViewModelAsync(PreviewModeService.Value.GetStoreNumber()).Result));
            }

            var vm = await StoreViewService.GetStoreViewModelAsync(new GetStoreByNumberParam
            {
                StoreNumber = storeNumber,
                CultureInfo = ComposerContext.CultureInfo,
                Scope       = ComposerContext.Scope,
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString()
            }).ConfigureAwait(false);

            return(vm);
        }
        public virtual ActionResult PageHeader(string storeNumber)
        {
            var model = StoreContext.ViewModel;

            if (model == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            var vm = StoreViewService.GetPageHeaderViewModel(model, new GetStorePageHeaderViewModelParam
            {
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo,
                StoreNumber = model.Number,
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString()
            });

            return(View(vm));
        }
예제 #8
0
        public virtual ActionResult PageHeader(string storeNumber)
        {
            if (string.IsNullOrEmpty(storeNumber))
            {
                return(View());
            }

            var vm = StoreViewService.GetPageHeaderViewModelAsync(new GetStorePageHeaderViewModelParam
            {
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo,
                StoreNumber = storeNumber,
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString()
            }).Result;

            if (vm == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }
            return(View(vm));
        }
예제 #9
0
        public virtual ActionResult StoreDetails(string storeNumber, int zoom = 14)
        {
            if (string.IsNullOrEmpty(storeNumber))
            {
                return(View());
            }
            var baseUrl = RequestUtils.GetBaseUrl(Request).ToString();

            var model = StoreViewService.GetStoreViewModelAsync(new GetStoreByNumberParam {
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo,
                StoreNumber = storeNumber,
                BaseUrl     = baseUrl
            }).Result;

            if (model == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            model.Context.Add("zoom", zoom);

            return(View("StoreDetails", model));
        }