protected override string BuildBaseUrl(Model.SeoUrlKeyword keyword)
        {
            var stringBuilder    = new StringBuilder();
            var categoryOutlines = _catalogBuilder.BuildCategoryOutline(_item.CatalogId, _item.ItemId);

            if (categoryOutlines != null && categoryOutlines.Any())
            {
                using (var storeRepo = _storeRepositoryFactory.GetRepositoryInstance())
                {
                    var store = storeRepo.Stores.Where(x => x.Catalog.Equals(categoryOutlines.First().CatalogId)).FirstOrDefault();
                    if (store != null)
                    {
                        var storeUrl = string.IsNullOrEmpty(store.Url) ? store.SecureUrl : store.Url;

                        if (!string.IsNullOrEmpty(storeUrl))
                        {
                            stringBuilder.AppendFormat("{0}{1}{2}", storeUrl, storeUrl.EndsWith("/") ? null : "/", keyword.Language.ToLower());
                        }
                        else
                        {
                            stringBuilder.AppendFormat("{0}{1}{2}/", _loginViewModel.CurrentUser.BaseUrl, _loginViewModel.CurrentUser.BaseUrl.EndsWith("/") ? null : "/", keyword.Language.ToLower());

                            using (var seoRepo = _appConfigRepositoryFactory.GetRepositoryInstance())
                            {
                                var storeSeo = seoRepo.SeoUrlKeywords.Where(
                                    x => x.KeywordValue == store.StoreId && x.Language == keyword.Language)
                                               .FirstOrDefault() ??
                                               seoRepo.SeoUrlKeywords.Where(
                                    x => x.KeywordValue == store.StoreId && x.Language == store.DefaultLanguage)
                                               .FirstOrDefault();
                                if (storeSeo != null)
                                {
                                    stringBuilder.AppendFormat("{0}", storeSeo.Keyword);
                                }
                            }
                        }
                    }
                }

                if (!string.IsNullOrEmpty(stringBuilder.ToString()) && categoryOutlines.First().Categories.Any())
                {
                    using (var seoRepo = _appConfigRepositoryFactory.GetRepositoryInstance())
                    {
                        categoryOutlines.First().Categories.ForEach(cat =>
                        {
                            var storeSeo = seoRepo.SeoUrlKeywords.Where(
                                x => x.KeywordValue == cat.CategoryId && x.Language == keyword.Language)
                                           .FirstOrDefault() ??
                                           seoRepo.SeoUrlKeywords.Where(
                                x => x.KeywordValue == cat.CategoryId && x.Language == _item.Catalog.DefaultLanguage)
                                           .FirstOrDefault();
                            stringBuilder.AppendFormat("/{0}", storeSeo != null ? storeSeo.Keyword : cat.CategoryId);
                        });
                    }
                }
            }

            return(stringBuilder.ToString());
        }
Exemple #2
0
        protected override string BuildBaseUrl(Model.SeoUrlKeyword keyword)
        {
            var stringBuilder = new StringBuilder();

            var storeUrl = string.IsNullOrEmpty(_store.Url) ? _store.SecureUrl : _store.Url;

            if (!string.IsNullOrEmpty(storeUrl))
            {
                stringBuilder.AppendFormat("{0}{1}{2}", storeUrl, storeUrl.EndsWith("/") ? null : "/", keyword.Language.ToLower());
            }
            else
            {
                stringBuilder.AppendFormat("{0}{1}{2}", _loginViewModel.CurrentUser.BaseUrl, _loginViewModel.CurrentUser.BaseUrl.EndsWith("/") ? null : "/", keyword.Language.ToLower());
            }
            return(stringBuilder.ToString());
        }