public static void CopyTo(this Article a2, ref ArticleEditModel newArticle) { newArticle.Body = a2.Body; newArticle.Keywords = a2.Keywords; newArticle.Description = a2.Description; newArticle.Menu = a2.Menu; newArticle.RedirectToUrl = a2.RedirectToUrl; newArticle.EventFrom = a2.EventFrom; newArticle.EventTo = a2.EventTo; }
public virtual ActionResult Save(ArticleEditModel article) { Article dbArticle = null; if (article.ArticleId == 0) { // Create new article dbArticle = new Article(); article.UpdateArticle(ref dbArticle); articleService.Add(dbArticle); } else { dbArticle = articleService.GetById(article.ArticleId); article.UpdateArticle(ref dbArticle); articleService.SaveDraft(dbArticle); } return Redirect(dbArticle.LinkTo()); }
public virtual ActionResult RenderByCode(string code, Language language, string parentcode = null) { if (language == Language.Nedolocen) language = System.Web.HttpContext.Current.Language(); if (language != Language.Nedolocen) language = System.Web.HttpContext.Current.SetLanguage(language); if (code.Empty()) code = DependencyResolver.Current.GetService<ISettingsProvider>().Settings.SitemapRootCode; if (parentcode.NotEmpty()) code = parentcode + "/" + code; Article article = null; if (System.Web.HttpContext.Current.UserIsEditor()) { article = articleService.GetInternal(code, language); if (article != null && article.Status == ArticleStatus.Archived) { articleService.CreateEditableCopy(article); RenderByCode(code, language); } } if (article == null) { article = articleService.GetPublic(code, language); } if (article == null) { if (System.Web.HttpContext.Current.UserIsEditor()) { var newArticle = new ArticleEditModel() { Code = code, Language = language, Guid = Guid.NewGuid(), Created = DateTime.Now }; // Try to copy data from an existing article in another language var allLangs = DependencyResolver.Current.GetService<ISettingsProvider>().Settings.SupportedLanguages; foreach (var supportedLanguage in allLangs) { Article a2 = articleService.GetInternal(code, supportedLanguage.Value); if (a2 != null) { a2.CopyTo(ref newArticle); break; } } // If not copied from another language, try making a copy from ArticleTempalte if (newArticle.Body.Empty()) { Article a2 = articleService.GetInternal("ArticleTemplate", System.Web.HttpContext.Current.Language()); if (a2 != null) a2.CopyTo(ref newArticle); } IAlertsProvider alertsProvider = DependencyResolver.Current.GetService<IAlertsProvider>(); alertsProvider.AddForUser(System.Web.HttpContext.Current.GetSessionId(), new Alert(string.Format("Stran {0} ne obstaja - ustvari novo.", code))); return View("Edit", newArticle); } var suggestions = articleService.FindPublic(code, language); return View("Predlagaj", suggestions); } saveArticleMetadataToRequestCache(article); var redirect = requestCacheService.Redirect; if (redirect.NotEmpty()) { if (System.Web.HttpContext.Current.UserIsEditor()) { IAlertsProvider alertsProvider = DependencyResolver.Current.GetService<IAlertsProvider>(); alertsProvider.AddForUser(System.Web.HttpContext.Current.GetSessionId(), new Alert(string.Format("Članek <b>{0}</b> preusmerja na <a href='{1}'>{1}</a>.", code, redirect))); } else { return Redirect(redirect); } } if (System.Web.HttpContext.Current.UserIsEditor()) { return View(MVC.Article.Views.RenderForEdit, new ArticleDisplayForEditModel(article.Body, article.Language, article.Status, article.Code, article.ArticleId, false, articleService.GetRelatedArticles(article), articleService.GetAllLanguages(article.Code), DependencyResolver.Current.GetService<ISettingsProvider>().Settings.SupportedLanguages)); } else { if (article.Body.Empty()) { if ( DependencyResolver.Current.GetService<IPictureDataProvider>() .PicturesForGallery(article.Code) .Any()) { return Redirect("/Picture/Show/" + article.Code) ; } } var body = loadPartiasIntoArticle(article.Body); return View(MVC.Article.Views.Render, new ArticleDisplayModel(article.Code, article.Language, body, article.Keywords)); } }