public string delete(Category category, bool isRecursive) { using (var db = new BaseDbContext()) { var articles = ArticleDbContext.getInstance().findArticlesByCategoryID(category.ItemID); var contentPages = ContentPageDbContext.getInstance().findArticlesByCategoryID(category.ItemID); if (articles.Count > 0 || contentPages.Count > 0) { return("Could not delete this category when it is linked with any article / content page."); } if (isRecursive) { // var children = findCategorysByParentID(category.parentItemID); /// for (int i = children.Count() - 1; i >= 0; i--) // { // delete(children.ElementAt(i), true); // } } AuditLogDbContext.getInstance().createAuditLogCategoryAction(category, AuditLogDbContext.ACTION_DELETE); db.Entry(category).State = EntityState.Deleted; db.SaveChanges(); return(null); } }
public String tryDeleteArticle(ContentPage article, bool isRecursive) { var _article = findArticleByID(article.ArticleID); if (_article == null) { return("Item not found"); } if (_article.isFrozen) { return(ResHelper.S("itemisfrozen")); } var error = AccountGroupBaseArticlePermissionHelper.tryCatchAccountGroupPermissionError(_article); if (error != null) { return(error); } AuditLogDbContext.getInstance().createAuditLogContentPageAction(_article, AuditLogDbContext.ACTION_DELETE); if (isRecursive) { getArticleDb().RemoveRange(getArticleDb().Where((acc) => acc.BaseArticleID == _article.BaseArticleID)); } else { getArticleDb().Remove(article); } db.SaveChanges(); return(null); }
public static AuditLogDbContext getInstance() { if (instance == null) { instance = new AuditLogDbContext(); } return(instance); }
public string tryChangePassword(Account account, String newPassword, bool shouldInvalidateResetPasswordNeeds = false) { var encPassword = account.MakeEncryptedPassword(newPassword); Account _account = findAccountByID(account.AccountID); if (_account != null) { var passwords = _account.historyPasswordList(); // check if this password is already used in the list // if yes, then return error message for (var i = 0; i < passwords.Count; i++) { var pass = passwords[i]; if (pass == encPassword) { return("New password must be different from your 9 previously used passwords"); } } using (var db = new BaseDbContext()) { db.Entry(_account).State = EntityState.Modified; _account.Password = encPassword; _account.ConfirmPassword = encPassword; _account.LastPasswordModifiedAt = DateTimeExtensions.GetServerTime(); if (shouldInvalidateResetPasswordNeeds) { _account.NeedChangePassword = false; } passwords.Add(encPassword); while (passwords.Count > 9) { passwords.RemoveAt(0); } _account.historyPasswords = _account.historyPasswordsFromList(passwords); db.SaveChanges(); SessionPersister.updateSessionForAccount(); account.Password = _account.Password; account.ConfirmPassword = _account.ConfirmPassword; } AuditLogDbContext.getInstance().createAuditLogAccountAction(account, AuditLogDbContext.ACTION_CHANGE_PASSWORD); return(null); } else { return("Change password failed: Account not found"); } }
public string delete(Constant item) { using (var db = new BaseDbContext()) { db.Entry(item).State = EntityState.Deleted; db.SaveChanges(); } AuditLogDbContext.getInstance().createAuditLogConstantAction(item, AuditLogDbContext.ACTION_DELETE); return(null); }
public string deactivateNotification(SystemMaintenanceNotification item) { using (var db = new BaseDbContext()) { db.Entry(item).State = EntityState.Modified; item.isActive = false; db.SaveChanges(); } AuditLogDbContext.getInstance().createAuditLogSystemMaintenanceNotificationAction(item, AuditLogDbContext.ACTION_DEACTIVATE); return null; }
public string tryUnpublishArticle(Article article, bool allLocales) { using (var db = new BaseDbContext()) { var _article = article; if (_article == null) { return("Item not found"); } if (!_article.isApproved) { return("Item not approved"); } var error = AccountGroupBaseArticlePermissionHelper.tryCatchAccountGroupPermissionError(_article); if (error != null) { return(error); } deletePublishedArticlesByBaseArticle(article); var local = db.articleDb .Local .FirstOrDefault(f => f.BaseArticleID == _article.BaseArticleID); if (local != null) { db.Entry(local).State = EntityState.Detached; } db.Entry(_article).State = EntityState.Modified; _article.isPublished = false; _article.datePublished = null; _article.publishedBy = null; db.SaveChanges(); if (allLocales) { var _localeArticles = ArticleDbContext.getInstance().findAllLocaleArticlesByBaseArticleAndVersion(article, article.Lang, db); foreach (var _a in _localeArticles) { db.Entry(_a).State = EntityState.Modified; _a.isPublished = false; _a.datePublished = null; _a.publishedBy = null; db.SaveChanges(); } } AuditLogDbContext.getInstance().createAuditLogArticleAction(article, AuditLogDbContext.ACTION_UNPUBLISH); return(null); } }
public String tryRequestUnapproval(Article article, bool allLocales) { var _article = findArticleByID(article.ArticleID); if (_article == null) { return("Item not found"); } if (_article.isApproved) { return("Item is already approved"); } if (_article.isUnapproved) { return("item is already unapproved"); } using (var db = new BaseDbContext()) { db.Entry(_article).State = EntityState.Modified; _article.isApproved = false; _article.isUnapproved = true; _article.isFrozen = true; _article.dateApproved = null; _article.dateUnapproved = DateTimeExtensions.GetServerTime(); _article.approvalRemarks = article.approvalRemarks; _article.approvedBy = SessionPersister.account.AccountID; if (allLocales) { var _localeArticles = findAllLocaleArticlesByBaseArticleAndVersion(article, article.Lang, db); foreach (var _a in _localeArticles) { db.Entry(_a).State = EntityState.Modified; _a.isApproved = false; _a.isUnapproved = true; _a.isFrozen = true; _a.dateApproved = null; _a.dateUnapproved = DateTimeExtensions.GetServerTime(); _a.approvalRemarks = article.approvalRemarks; _a.approvedBy = SessionPersister.account.AccountID; } } db.SaveChanges(); AuditLogDbContext.getInstance().createAuditLogArticleAction(article, AuditLogDbContext.ACTION_UNAPPROVE); return(null); } }
public string edit(Constant item) { List <string> modified_fields = new List <string>(); using (var db = new BaseDbContext()) { var constant = findByID(item.ConstantID); var result = ConstantDbContext.getInstance().findByKeyNoTracking(item.Key); if (result != null) { if (item.ConstantID != result.ConstantID) { return("This Constant Key already exists. Please enter another Constant Key."); } } var local = db.constantDb .Local .FirstOrDefault(f => f.ConstantID == item.ConstantID); if (local != null) { if (local.Key != item.Key) { modified_fields.Add("Key"); } if (local.Value != item.Value) { modified_fields.Add("Value"); } if (local.isActive != item.isActive) { modified_fields.Add("isActive"); } if (local.Desc != item.Desc) { modified_fields.Add("Desc"); } db.Entry(local).State = EntityState.Detached; } db.Entry(constant).State = EntityState.Modified; constant.Value = item.Value; constant.Key = item.Key; constant.isActive = item.isActive; db.SaveChanges(); } AuditLogDbContext.getInstance().createAuditLogConstantAction(item, AuditLogDbContext.ACTION_EDIT, modified_fields); return(null); }
public String tryDeleteArticle(Article article, bool isRecursive) { using (var db = new BaseDbContext()) { var _article = findArticleByID(article.ArticleID); if (_article == null) { return("Item not found"); } if (_article.isFrozen) { return(ResHelper.S("itemisfrozen")); } var error = AccountGroupBaseArticlePermissionHelper.tryCatchAccountGroupPermissionError(_article); if (error != null) { return(error); } AuditLogDbContext.getInstance().createAuditLogArticleAction(_article, AuditLogDbContext.ACTION_DELETE); if (isRecursive) { if (frozenArticleAlreadyPresents(_article)) { error = ResHelper.S("itemisfrozen"); return(error); } var articlesToDelete = db.articleDb.Where((acc) => acc.BaseArticleID == _article.BaseArticleID); foreach (var a in articlesToDelete) { db.Entry(a).State = EntityState.Deleted; } db.SaveChanges(); return(null); } else { db.Entry(article).State = EntityState.Deleted; } db.SaveChanges(); return(null); } }
public String tryEditArticleProperties(ContentPage article, bool allLocales) { if (article.categoryID == -1) { article.categoryID = null; } var _article = findArticleByID(article.ArticleID); if (_article == null) { return("Item not found"); } if (_article.isFrozen) { return(ResHelper.S("itemisfrozen")); } var error = AccountGroupBaseArticlePermissionHelper.tryCatchAccountGroupPermissionError(_article); if (error != null) { return(error); } db.Entry(_article).State = EntityState.Modified; _article.Url = article.Url; _article.Slug = article.Slug; _article.categoryID = article.categoryID; if (allLocales) { var _localeArticles = findAllLocaleArticlesByBaseArticleAndVersion(article, article.Lang); foreach (var _a in _localeArticles) { db.Entry(_a).State = EntityState.Modified; _a.Url = article.Url; _article.Slug = article.Slug; _article.categoryID = article.categoryID; } } db.SaveChanges(); AuditLogDbContext.getInstance().createAuditLogContentPageAction(_article, AuditLogDbContext.ACTION_EDIT_PROPERTIES); return(null); }
public string create(Constant item) { using (var db = new BaseDbContext()) { var result = ConstantDbContext.getInstance().findByKeyNoTracking(item.Key); if (result != null) { return("This Constant Key already exists. Please enter another Constant Key."); } db.constantDb.Add(item); db.SaveChanges(); } AuditLogDbContext.getInstance().createAuditLogConstantAction(item, AuditLogDbContext.ACTION_CREATE); return(null); }
public string tryRegisterAccount(Account account, bool isSeeding = false) { var error = tryCheckUsername(account); if (error != null) { return(error); } error = tryCheckEmail(account); if (error != null) { return(error); } var rawPassword = account.Password; var encPassword = account.MakeEncryptedPassword(account.Password); account.Password = encPassword; account.ConfirmPassword = encPassword; account.LastPasswordModifiedAt = DateTimeExtensions.GetServerTime(); account.historyPasswords = account.Password; if (account.RoleList != null) { account.Role = String.Join(",", account.RoleList); } else if (account.Role == null) { account.Role = ""; } account.NeedChangePassword = true; if (!isSeeding) { EmailHelper.SendEmailToAccountOnPasswordCreate(account, rawPassword); } using (var db = new BaseDbContext()) { db.accountDb.Add(account); db.SaveChanges(); } AuditLogDbContext.getInstance().createAuditLogAccountAction(account, AuditLogDbContext.ACTION_CREATE); return(null); }
// ARTICLE EDITOR & APPROVER ONLY #region "Approval" // ARTICLE EDITOR REQUEST FOR APPROVAL public String trySubmitRequestForApproval(Article article, bool allLocales) { var _article = findArticleByID(article.ArticleID); if (_article == null) { return("Item not found"); } if (_article.isFrozen) { return(ResHelper.S("itemisfrozen")); } var error = AccountGroupBaseArticlePermissionHelper.tryCatchAccountGroupPermissionError(_article); if (error != null) { return(error); } using (var db = new BaseDbContext()) { db.Entry(_article).State = EntityState.Modified; _article.isRequestingApproval = true; _article.isFrozen = true; if (allLocales) { var _localeArticles = findAllLocaleArticlesByBaseArticleAndVersion(article, article.Lang, db); foreach (var _a in _localeArticles) { db.Entry(_a).State = EntityState.Modified; _article.isRequestingApproval = true; _article.isFrozen = true; } } db.SaveChanges(); AuditLogDbContext.getInstance().createAuditLogArticleAction(article, AuditLogDbContext.ACTION_SUBMIT_FOR_APPROVAL); return(null); } }
public string editNotification(SystemMaintenanceNotification item) { List<string> modified_fields = new List<string>(); using (var db = new BaseDbContext()) { var local = db.systemMaintenanceNotificationDb .Local .FirstOrDefault(f => f.NotificationID == item.NotificationID); if (local != null) { if (local.name_en != item.name_en) { modified_fields.Add("name_en"); } if (local.name_zh != item.name_zh) { modified_fields.Add("name_zh"); } if (local.name_cn != item.name_cn) { modified_fields.Add("name_cn"); } if (local.desc_en != item.desc_en) { modified_fields.Add("desc_en"); } if (local.desc_zh != item.desc_zh) { modified_fields.Add("desc_zh"); } if (local.desc_cn != item.desc_cn) { modified_fields.Add("desc_cn"); } if (local.startDate != item.startDate) { modified_fields.Add("startDate"); } if (local.endDate != item.endDate) { modified_fields.Add("endDate"); } if (local.isActive != item.isActive) { modified_fields.Add("isActive"); } // if (local.level != item.level) { modified_fields.Add("level"); } db.Entry(local).State = EntityState.Detached; } var startDate = item.startDate; if (startDate == null) { return "Start Date must be set for creating scheduled notification."; } var endDate = item.endDate; if (endDate == null) { return "End Date must be set for creating scheduled notification."; } db.Entry(item).State = EntityState.Modified; db.SaveChanges(); } AuditLogDbContext.getInstance().createAuditLogSystemMaintenanceNotificationAction(item, AuditLogDbContext.ACTION_EDIT, modified_fields); return null; }
public string create(Category category) { using (var db = new BaseDbContext()) { var categorys = findCategorysByParentID(category.parentItemID); int maxOrder = 0; for (int i = 0; i < categorys.Count(); i++) { var item = categorys.ElementAt(i); if (item.order > maxOrder) { maxOrder = item.order; } } category.order = maxOrder + 1; if (category.parentItemID < 0) { category.parentItemID = null; } if (category.iconPath != null && category.iconPath.Equals("____EMPTY")) { category.iconPath = null; } if (category.thumbPath != null && category.thumbPath.Equals("____EMPTY")) { category.thumbPath = null; } if (category.imagePath != null && category.imagePath.Equals("____EMPTY")) { category.imagePath = null; } AuditLogDbContext.getInstance().createAuditLogCategoryAction(category, AuditLogDbContext.ACTION_CREATE); db.infrastructureCategoryDb.Add(category); db.SaveChanges(); return(null); } }
public String tryEditArticle(ContentPage article) { if (article.categoryID == -1) { article.categoryID = null; } var _article = findArticleByID(article.ArticleID); if (_article == null) { return("Item not found"); } if (_article.isFrozen) { return(ResHelper.S("itemisfrozen")); } var error = AccountGroupBaseArticlePermissionHelper.tryCatchAccountGroupPermissionError(_article); if (error != null) { return(error); } db.Entry(_article).State = EntityState.Modified; _article.Name = article.Name; _article.Desc = article.Desc; _article.Url = article.Url; _article.Keywords = article.Keywords; _article.MetaData = article.MetaData; _article.MetaKeywords = article.MetaKeywords; _article.Excerpt = article.Excerpt; db.SaveChanges(); AuditLogDbContext.getInstance().createAuditLogContentPageAction(_article, AuditLogDbContext.ACTION_EDIT); return(null); }
// edit public string createScheduledNotification(SystemMaintenanceNotification item) { using (var db = new BaseDbContext()) { var startDate = item.startDate; if (startDate == null) { return "Start Date must be set for creating scheduled notification."; } var endDate = item.endDate; if (endDate == null) { return "End Date must be set for creating scheduled notification."; } db.systemMaintenanceNotificationDb.Add(item); db.SaveChanges(); } AuditLogDbContext.getInstance().createAuditLogSystemMaintenanceNotificationAction(item, AuditLogDbContext.ACTION_CREATE); return null; }
public string tryDeleteAccount(Account account) { AuditLogDbContext.getInstance().createAuditLogAccountAction(account, AuditLogDbContext.ACTION_DELETE); Account _account = findAccountByID(account.AccountID); if (_account != null) { using (var db = new BaseDbContext()) { db.Entry(_account).State = EntityState.Modified; _account.isEnabled = false; _account.isRemoved = true; _account.Username = _account.Username + "(deleted)"; //db.accountDb.Remove(_acc); //db.Entry(_acc).State = EntityState.Deleted; db.SaveChanges(); } } return(null); }
// ARTICLE PUBLISHER ONLY #region "Publish / Unpublish" public string tryPublishArticle(Article article, bool allLocales) { using (var db = new BaseDbContext()) { var _article = article; if (_article == null) { return("Item not found"); } if (!_article.isApproved) { return("Item not approved"); } var error = AccountGroupBaseArticlePermissionHelper.tryCatchAccountGroupPermissionError(_article); if (error != null) { return(error); } deletePublishedArticlesByBaseArticle(article); addArticleToPublished(article); var local = db.articleDb .Local .FirstOrDefault(f => f.BaseArticleID == _article.BaseArticleID); if (local != null) { db.Entry(local).State = EntityState.Detached; } } using (var db = new BaseDbContext()) { var _article = article; db.Entry(_article).State = EntityState.Modified; _article.isPublished = true; _article.datePublished = DateTimeExtensions.GetServerTime(); _article.datePublishStart = article.datePublishStart; _article.datePublishEnd = article.datePublishEnd; _article.publishedBy = SessionPersister.account.AccountID; if (allLocales) { var _localeArticles = ArticleDbContext.getInstance().findAllLocaleArticlesByBaseArticleAndVersion(article, article.Lang, db); foreach (var _a in _localeArticles) { db.Entry(_a).State = EntityState.Modified; _a.isPublished = true; _a.datePublished = DateTimeExtensions.GetServerTime(); _a.datePublishStart = article.datePublishStart; _a.datePublishEnd = article.datePublishEnd; _a.publishedBy = SessionPersister.account.AccountID; } } var allArticles = ArticleDbContext.getInstance().findArticlesGroupByBaseVersionApproved(_article.BaseArticleID, "en", db); foreach (Article a in allArticles) { if (_article.ArticleID == a.ArticleID) { continue; } db.Entry(a).State = EntityState.Modified; a.isPublished = false; a.datePublished = null; a.publishedBy = null; if (allLocales) { var _localeArticles = ArticleDbContext.getInstance().findAllLocaleArticlesByBaseArticleAndVersion(a, a.Lang, db); foreach (var _a in _localeArticles) { db.Entry(_a).State = EntityState.Modified; _a.isPublished = false; _a.datePublished = null; _a.publishedBy = null; } } } db.SaveChanges(); AuditLogDbContext.getInstance().createAuditLogArticleAction(article, AuditLogDbContext.ACTION_PUBLISH); return(null); } }
public string edit(Category category) { using (var db = new BaseDbContext()) { if (category.parentItemID == category.ItemID) { return("Parent Item ID should not be the same as its own item ID."); } var _category = findCategoryByIDNoTracking(category.ItemID); category.created_at = _category.created_at; var local = db.infrastructureCategoryDb .Local .FirstOrDefault(f => f.ItemID == category.ItemID); if (local != null) { db.Entry(local).State = EntityState.Detached; } List <string> modified_fields = new List <string>(); if (_category.url != category.url) { modified_fields.Add("url"); } if (_category.name_en != category.name_en) { modified_fields.Add("name_en"); } if (_category.name_zh != category.name_zh) { modified_fields.Add("name_zh"); } if (_category.name_cn != category.name_cn) { modified_fields.Add("name_cn"); } if (_category.iconPath != category.iconPath) { modified_fields.Add("iconPath"); } if (_category.thumbPath != category.thumbPath) { modified_fields.Add("thumbPath"); } if (_category.imagePath != category.imagePath) { modified_fields.Add("imagePath"); } if (_category.remarks != category.remarks) { modified_fields.Add("remarks"); } if (_category.pageClassName != category.pageClassName) { modified_fields.Add("pageClassName"); } if (_category.isEnabled != category.isEnabled) { modified_fields.Add("isEnabled"); } if (_category.isContentPage != category.isContentPage) { modified_fields.Add("isContentPage"); } if (_category.isArticleList != category.isArticleList) { modified_fields.Add("isArticleList"); } if (_category.isVisibleToVisitorOnly != category.isVisibleToVisitorOnly) { modified_fields.Add("isVisibleToVisitorOnly"); } if (_category.isVisibleToMembersOnly != category.isVisibleToMembersOnly) { modified_fields.Add("isVisibleToMembersOnly"); } if (_category.isVisibleToTradingOnly != category.isVisibleToTradingOnly) { modified_fields.Add("isVisibleToTradingOnly"); } if (_category.isHeaderMenu != category.isHeaderMenu) { modified_fields.Add("isHeaderMenu"); } if (_category.isHeaderMenuRight != category.isHeaderMenuRight) { modified_fields.Add("isHeaderMenuRight"); } if (_category.isFooterMenu != category.isFooterMenu) { modified_fields.Add("isFooterMenu"); } if (_category.isBottomMenu != category.isBottomMenu) { modified_fields.Add("isBottomMenu"); } if (_category.isShortcut != category.isShortcut) { modified_fields.Add("isShortcut"); } if (_category.isJumbotron != category.isJumbotron) { modified_fields.Add("isJumbotron"); } if (_category.isBanner != category.isBanner) { modified_fields.Add("isBanner"); } if (_category.pageShouldShowTopbarmenu != category.pageShouldShowTopbarmenu) { modified_fields.Add("pageShouldShowTopbarmenu"); } if (_category.pageShouldHideTopTitle != category.pageShouldHideTopTitle) { modified_fields.Add("pageShouldHideTopTitle"); } if (_category.pageShouldHideFromHorizontalMenu != category.pageShouldHideFromHorizontalMenu) { modified_fields.Add("pageShouldHideFromHorizontalMenu"); } if (_category.isUseNewsArticleDetailsTemplate != category.isUseNewsArticleDetailsTemplate) { modified_fields.Add("isUseNewsArticleDetailsTemplate"); } if (category.parentItemID < 0) { category.parentItemID = null; } if (category.iconPath != null && category.iconPath.Equals("____EMPTY")) { category.iconPath = null; } else if (category.iconPath == null) { category.iconPath = _category.iconPath; } if (category.thumbPath != null && category.thumbPath.Equals("____EMPTY")) { category.thumbPath = null; } else if (category.thumbPath == null) { category.thumbPath = _category.thumbPath; } if (category.imagePath != null && category.imagePath.Equals("____EMPTY")) { category.imagePath = null; } else if (category.imagePath == null) { category.imagePath = _category.imagePath; } AuditLogDbContext.getInstance().createAuditLogCategoryAction(category, AuditLogDbContext.ACTION_EDIT, modified_fields); db.Entry(category).State = EntityState.Modified; db.SaveChanges(); return(null); } }
public String tryEditArticleProperties(Article article, bool allLocales) { if (article.categoryID == -1) { article.categoryID = null; } var _article = findArticleByID(article.ArticleID); if (_article == null) { return("Item not found"); } if (_article.isFrozen) { if (!ConstantDbContext.getInstance().ALLOW_EDIT_AFTER_PUBLISH()) { return(ResHelper.S("itemisfrozen")); } } var error = AccountGroupBaseArticlePermissionHelper.tryCatchAccountGroupPermissionError(_article); if (error != null) { return(error); } List <string> modified_fields = new List <string>(); using (var db = new BaseDbContext()) { db.Entry(_article).State = EntityState.Modified; if (_article.Url != article.Url) { modified_fields.Add("Url"); } if (_article.Slug != article.Slug) { modified_fields.Add("Slug"); } if (_article.categoryID != article.categoryID) { modified_fields.Add("categoryID"); } _article.Url = article.Url; _article.Slug = article.Slug; _article.categoryID = article.categoryID; if (allLocales) { var _localeArticles = findAllLocaleArticlesByBaseArticleAndVersion(article, article.Lang, db); foreach (var _a in _localeArticles) { db.Entry(_a).State = EntityState.Modified; if (_a.Url != article.Url) { modified_fields.Add("Url"); } if (_a.Slug != article.Slug) { modified_fields.Add("Slug"); } if (_a.categoryID != article.categoryID) { modified_fields.Add("categoryID"); } _a.Url = article.Url; _a.Slug = article.Slug; _a.categoryID = article.categoryID; } } db.SaveChanges(); AuditLogDbContext.getInstance().createAuditLogArticleAction(article, AuditLogDbContext.ACTION_EDIT_PROPERTIES, modified_fields); return(null); } }
public String tryEditArticle(Article article) { var _article = findArticleByID(article.ArticleID); if (_article == null) { return("Item not found"); } if (_article.isFrozen) { if (!ConstantDbContext.getInstance().ALLOW_EDIT_AFTER_PUBLISH()) { return(ResHelper.S("itemisfrozen")); } } var error = AccountGroupBaseArticlePermissionHelper.tryCatchAccountGroupPermissionError(_article); if (error != null) { return(error); } using (var db = new BaseDbContext()) { List <string> modified_fields = new List <string>(); if (_article.Name != article.Name) { modified_fields.Add("Name"); } if (_article.Desc != article.Desc) { modified_fields.Add("Desc"); } if (_article.Slug != article.Slug) { modified_fields.Add("Slug"); } if (_article.Keywords != article.Keywords) { modified_fields.Add("Keywords"); } if (_article.MetaData != article.MetaData) { modified_fields.Add("MetaData"); } if (_article.MetaKeywords != article.MetaKeywords) { modified_fields.Add("MetaKeywords"); } if (_article.Excerpt != article.Excerpt) { modified_fields.Add("Excerpt"); } db.Entry(_article).State = EntityState.Modified; _article.Name = article.Name; _article.Desc = article.Desc; if (_article.Desc != null) { _article.Desc = _article.Desc.Replace("cms/ckfinder/userfiles", "ckfinder/userfiles"); } _article.Slug = article.Slug; _article.Keywords = article.Keywords; _article.MetaData = article.MetaData; _article.MetaKeywords = article.MetaKeywords; _article.Excerpt = article.Excerpt; db.SaveChanges(); AuditLogDbContext.getInstance().createAuditLogArticleAction(article, AuditLogDbContext.ACTION_EDIT, modified_fields); return(null); } }
// ARTICLE EDITOR ONLY #region "Create" public String tryCreateNewArticle(Article article) { var error = AccountGroupBaseArticlePermissionHelper.tryCatchAccountGroupPermissionError(article); if (error != null) { return(error); } Article latestArticle = null; if (article.categoryID == -1) { article.categoryID = null; } if (article.BaseArticleID != 0) { if (String.IsNullOrEmpty(article.Lang)) { article.Lang = "en"; } if (!article.Lang.Equals("en")) { return(tryCreateNewLocaleArticle(article)); } latestArticle = findLatestArticleByBaseArticle(article, null); article = latestArticle.makeNewArticleByCloningContent(); article.Version = latestArticle.Version; article.Version = article.Version + 1; article.createdBy = SessionPersister.account.AccountID; } else { article.Version = 1; } if (String.IsNullOrEmpty(article.Lang)) { article.Lang = "en"; } if (articleWithSameVersionAndLangAlreadyPresents(article)) { return("Article already presents"); } using (var db = new BaseDbContext()) { article.createdBy = SessionPersister.account.AccountID; if (article.Desc != null) { article.Desc = article.Desc.Replace("cms/ckfinder/userfiles", "ckfinder/userfiles"); } db.articleDb.Add(article); db.SaveChanges(); if (article.BaseArticleID == 0) { db.Entry(article).State = EntityState.Modified; article.BaseArticleID = article.ArticleID; db.SaveChanges(); } // try clone new locale for this new article if (latestArticle != null && article != null) { tryCloningNewLocaleArticleForNewArticleVersion(latestArticle, article); } if (article.Version == 1) { AuditLogDbContext.getInstance().createAuditLogArticleAction(article, AuditLogDbContext.ACTION_CREATE); } else { AuditLogDbContext.getInstance().createAuditLogArticleAction(article, AuditLogDbContext.ACTION_CREATE_NEW_VERSION); } } return(null); }
public string tryChangeProfile(Account account) { List <string> modified_fields = new List <string>(); Account _account = findAccountByID(account.AccountID); if (_account != null) { using (var db = new BaseDbContext()) { db.Entry(_account).State = EntityState.Modified; if (account.RoleList != null) { account.Role = String.Join(",", account.RoleList); } else if (account.Role == null) { account.Role = ""; } if (_account.Role != account.Role) { modified_fields.Add("Role"); } if (_account.Username != account.Username) { modified_fields.Add("Username"); } if (_account.Email != account.Email) { modified_fields.Add("Email"); } if (_account.Firstname != account.Firstname) { modified_fields.Add("Firstname"); } if (_account.Lastname != account.Lastname) { modified_fields.Add("Lastname"); } if (_account.GroupID != account.GroupID) { modified_fields.Add("GroupID"); } if (_account.isEnabled != account.isEnabled) { modified_fields.Add("isEnabled"); } _account.Role = account.Role; _account.Username = account.Username; _account.Email = account.Email; _account.Firstname = account.Firstname; _account.Lastname = account.Lastname; _account.GroupID = account.GroupID; _account.isEnabled = account.isEnabled; SessionPersister.updateSessionForAccount(); db.SaveChanges(); } AuditLogDbContext.getInstance().createAuditLogAccountAction(account, AuditLogDbContext.ACTION_EDIT, modified_fields); return(null); } else { return("Change password failed: Account not found"); } }