private string getUniqueUrl(PageTranslation pageTranslation, string pageUrl, Guid pageId) { var duplicateTranslation = _pageRepository.GetPageTranslation(pageUrl.ToLower()); if (duplicateTranslation != null && duplicateTranslation.PageId != pageId) { while (duplicateTranslation != null && duplicateTranslation.URL.ToLower() == pageUrl.ToLower()) { pageUrl += "1"; pageTranslation.Name += "1"; duplicateTranslation = _pageRepository.GetPageTranslation(pageUrl); } } return(pageUrl); }
private string GetUniqueUrl(PageTranslation pageTranslation, string pageUrl, Guid pageId) { var duplicateTranslation = _pageRepository.GetPageTranslation(pageUrl.ToLower()); if (duplicateTranslation == null || duplicateTranslation.PageId == pageId) { return(pageUrl); } while (duplicateTranslation != null && string.Equals(duplicateTranslation.URL, pageUrl, StringComparison.CurrentCultureIgnoreCase)) { pageUrl += "1"; pageTranslation.Name += "1"; duplicateTranslation = _pageRepository.GetPageTranslation(pageUrl); } return(pageUrl); }
private string GetLocalizedUrl(string cultureCode) { if (_scopeService.PageContext?.CurrentPage?.PageTranslation == null) { return(""); } PageTranslation translation = null; if (_scopeService.PageContext.CurrentPage.PageTranslation.All(t => t.Locale.ToLower() != cultureCode.ToLower())) { return(""); } translation = _scopeService.PageContext.CurrentPage.PageTranslation.Get(cultureCode.ToLower()); return("/" + translation.URL); }
public PageTranslation CreatePageTranslation(long languageID, string name, string seoName, string seoKeyword, string seoDescription, string text, string picture) { DateTime date = DateTime.Now; Page page = new Page { CreatedDate = date, UpdatedDate = date }; context.Page.Add(page); PageTranslation pageTranslation = new PageTranslation { LanguageID = languageID, Name = name, PageID = page.ID, Picture = picture, SeoDescription = seoDescription, SeoKeyword = seoKeyword, SeoName = seoName, Text = text, CreatedDate = date, UpdatedDate = date }; context.PageTranslation.Add(pageTranslation); using (TransactionScope scope = new TransactionScope()) { try { context.SaveChanges(); scope.Complete(); } catch (Exception ex) { throw ex; } } return(pageTranslation); }
public async Task <ActionResultResponse> Save(PageTranslation pageTranslation) { var pageInfo = await _pageTranslationRepository.GetInfo(pageTranslation.PageId, pageTranslation.LanguageId); if (pageInfo == null) { var resultInsert = await _pageTranslationRepository.Insert(pageTranslation); return(new ActionResultResponse(resultInsert, resultInsert <= 0 ? _sharedResourceService.GetString("Something went wrong. Please contact with administrator.") : _resourceService.GetString("Add new page successful."))); } pageInfo.Name = pageTranslation.Name.Trim(); pageInfo.Description = pageTranslation.Description?.Trim(); pageInfo.UnsignName = pageInfo.Name.StripVietnameseChars().ToUpper(); var resultUpdate = await _pageTranslationRepository.Update(pageInfo); return(new ActionResultResponse(resultUpdate, resultUpdate <= 0 ? _sharedResourceService.GetString("Something went wrong. Please contact with administrator.") : _resourceService.GetString("Update page successful."))); }
public PageEditModel LoadEdit(long pageID, long?languageID) { PageBusiness pageBusiness = new PageBusiness(); LanguageBusiness languageBusiness = new LanguageBusiness(); PageEditModel pageEditModel = new PageEditModel(); Page page = pageBusiness.GetPage(pageID); PageTranslation pageTranslation = null; if (languageID.HasValue) { pageTranslation = page.PageTranslation.FirstOrDefault(z => z.LanguageID == languageID); } else { pageTranslation = page.PageTranslation.FirstOrDefault(); } if (pageTranslation == null) { pageTranslation = new PageTranslation(); } IEnumerable <Language> languageList = languageBusiness.LanguageList(); pageEditModel.LanguageList = new SelectList(languageList, "ID", "Name", languageID); pageEditModel.LanguageID = pageTranslation.LanguageID; pageEditModel.Name = pageTranslation.Name; pageEditModel.PageID = page.ID; pageEditModel.Picture = pageTranslation.Picture; pageEditModel.SeoDescription = pageTranslation.SeoDescription; pageEditModel.SeoKeyword = pageTranslation.SeoKeyword; pageEditModel.SeoName = pageTranslation.SeoName; pageEditModel.Text = pageTranslation.Text; return(pageEditModel); }
public PageEditModel EditPage(PageEditModel request) { PageEditModel pageEditModel = new PageEditModel(); LanguageBusiness languageBusiness = new LanguageBusiness(); PageBusiness pageBusiness = new PageBusiness(); IEnumerable <Language> languageList = languageBusiness.LanguageList(); pageEditModel.LanguageList = new SelectList(languageList, "ID", "Name", request.LanguageID); pageEditModel.PageID = request.PageID; bool existLanguage = languageBusiness.ExistLanguage(request.LanguageID); long?existPageTranslation = pageBusiness.ExistPageTranslationByPageIDAndLanguageID(request.PageID, request.LanguageID); if (!existLanguage) { pageEditModel.Alerts.AlertList.Add("Dil bulunamadı!"); pageEditModel.Alerts.AlertType = Model.Base.Alerts.AlertTypes.Error; return(request); } else { bool existSeoName = pageBusiness.ExistSeoName(request.SeoName, request.PageID); if (existSeoName) { pageEditModel.Alerts.AlertList.Add("Seo adı daha önce kullanılmış!"); pageEditModel.Alerts.AlertType = Model.Base.Alerts.AlertTypes.Error; return(pageEditModel); } else { try { if (!existPageTranslation.HasValue) { PageTranslation pageTranslation = pageBusiness.CreatePageTranslation(request.LanguageID, request.PageID, request.Name, request.SeoName, request.SeoKeyword, request.SeoDescription, request.Text, request.Picture); pageEditModel.Alerts.AlertList.Add("Sayfa başarıyla eklendi"); pageEditModel.Alerts.AlertType = Model.Base.Alerts.AlertTypes.Success; } else { PageTranslation pageTranslation = pageBusiness.UpdatePageTranslation(request.LanguageID, request.PageID, request.Name, request.SeoName, request.SeoKeyword, request.SeoDescription, request.Text, request.Picture); pageEditModel.Alerts.AlertList.Add("Sayfa başarıyla güncellendi."); pageEditModel.Alerts.AlertType = Model.Base.Alerts.AlertTypes.Success; } } catch (Exception ex) { request.Alerts.AlertList.Add("Sayfa kaydedilemedi [ " + ex.Message + " ]"); request.Alerts.AlertType = Model.Base.Alerts.AlertTypes.Error; } } } return(pageEditModel); }
private PageTranslation GetPageTranslation(long languageID, long pageID) { PageTranslation pageTranslation = context.PageTranslation.FirstOrDefault(z => z.LanguageID == languageID && z.PageID == pageID); return(pageTranslation); }
public async Task <int> Update(PageTranslation pageTranslation) { return(await Context.SaveChangesAsync()); }
public async Task <int> Insert(PageTranslation pageTranslation) { _pageTranslationRepository.Create(pageTranslation); return(await Context.SaveChangesAsync()); }
public async Task <ActionResultResponse> Insert(PageMeta pageMeta) { // Check Id exists. var isIdExists = await _pageRepository.CheckExists(pageMeta.Id); if (isIdExists) { return(new ActionResultResponse(-1, _resourceService.GetString("Page already exists."))); } if (pageMeta.PageTranslations == null || !pageMeta.PageTranslations.Any()) { return(new ActionResultResponse(-2, _resourceService.GetString("Please add at least one language."))); } var page = new Page { Id = pageMeta.Id, BgColor = pageMeta.BgColor?.Trim(), Icon = pageMeta.Icon?.Trim(), IsActive = pageMeta.IsActive, ParentId = pageMeta.ParentId, Order = pageMeta.Order, Url = pageMeta.Url?.Trim(), IdPath = "-1" }; if (pageMeta.ParentId.HasValue) { var parentInfo = await _pageRepository.GetInfo(pageMeta.ParentId.Value); if (parentInfo == null) { return(new ActionResultResponse(-3, _resourceService.GetString("Parent page does not exists."))); } page.ParentId = parentInfo.Id; page.IdPath = $"{parentInfo.IdPath}.-1"; } var resultInsertPage = await _pageRepository.Insert(page); if (resultInsertPage <= 0) { return(new ActionResultResponse(resultInsertPage, _sharedResourceService.GetString("Something went wrong. Please contact with administrator."))); } #region Update page idPath. page.IdPath = page.IdPath.Replace("-1", page.Id.ToString()); await _pageRepository.Update(page); #endregion // Insert page translation. foreach (var pageTranslation in pageMeta.PageTranslations) { var pageTranslate = new PageTranslation { PageId = page.Id, Description = pageTranslation.Description?.Trim(), LanguageId = pageTranslation.LanguageId?.Trim(), Name = pageTranslation.Name.Trim(), UnsignName = pageTranslation.Name.Trim().StripVietnameseChars().ToUpper() }; var resultPageTranslation = await _pageTranslationService.Save(pageTranslate); if (resultPageTranslation.Code <= 0) { // Roleback insert. await RollbackInsert(page.Id); } } return(new ActionResultResponse(resultInsertPage, _resourceService.GetString("Add new page successful."))); }
private Page ConvertToSingePage(PageViewModel pageViewModel, bool isMultilingual, IList <Language> translateLanguages) { Page page; PageTranslation pageTranslation; var currentCulture = System.Threading.Thread.CurrentThread.CurrentCulture.Name; if (pageViewModel.Parent != null) { pageViewModel.ParentId = pageViewModel.Parent.Id; pageViewModel.Parent = null; } if (pageViewModel.ParentId == null || pageViewModel.ParentId == Guid.Empty) { return(_mapper.Map <Page>(pageViewModel)); } if (pageViewModel.Id == Guid.Empty) { page = new Page(); pageTranslation = new PageTranslation(); } else { page = _navigation.GetPageAndDependencies(pageViewModel.Id); pageTranslation = page.PageTranslation.FirstOrDefault(pt => string.Equals(pt.Locale, currentCulture)); } if (pageTranslation == null) { throw new InvalidOperationException($"Page does not have translation for default locale: {currentCulture}"); } _mapper.Map(pageViewModel, page); page.PageTypeId = page.PageType?.Id; page.PageType = null; pageTranslation.Name = pageViewModel.Name; pageTranslation.Title = pageViewModel.Title; pageTranslation.Locale = currentCulture; pageTranslation.Description = pageViewModel.Description; pageTranslation.PageHeaderTags = pageViewModel.PageHeaderTags; pageTranslation.RedirectUrl = pageViewModel.RedirectUrl; pageTranslation.IsLinkNewWindow = pageViewModel.IsLinkNewWindow; //Default page translation will be removed for both new and existing pages. Therefore, add it while updating a pge. page.PageTranslation.Add(pageTranslation); if (isMultilingual && page.PageTranslation.Count > 1) { foreach (var translation in page.PageTranslation) { var selectedLanguage = translateLanguages.FirstOrDefault(t => string.Equals(t?.CultureCode, translation?.Language?.CultureCode, StringComparison.InvariantCultureIgnoreCase)); if (selectedLanguage != null) { translation.Locale = selectedLanguage.CultureCode; } } } if (pageViewModel.Module != null) { page.AdminPage = new AdminPage() { ModuleId = pageViewModel.Module.Id, PageId = pageViewModel.Id, ModelName = pageViewModel.ModelName }; } else { page.AdminPage = null; } page.ThemeSrc = pageViewModel.Theme?.Id; return(page); }