/// <inheritdoc cref="IEmailManager.AddMailTemplateAsync(string, string, string)" /> public async Task AddMailTemplateAsync(string keyname, string subject, string message) { if (string.IsNullOrEmpty(keyname)) { throw new ArgumentNullException(nameof(keyname)); } if (await _dbContext.KastraMailTemplates.AnyAsync(mt => mt.Keyname == keyname)) { throw new ArgumentException("The keyname already exists"); } MailTemplate mailTemplate = new () { Keyname = keyname, Subject = subject, Message = message }; _dbContext.KastraMailTemplates.Add(mailTemplate); await _dbContext.SaveChangesAsync(); _cacheEngine.ClearCacheContains("Mail_Template"); }
/// <inheritdoc cref="ISecurityManager.SaveModulePermissionAsync(ModulePermissionInfo)" /> public async Task <bool> SaveModulePermissionAsync(ModulePermissionInfo modulePermissionInfo) { ModulePermission modulePermission = modulePermissionInfo.ToModulePermission(); if (modulePermissionInfo.ModulePermissionId > 0) { _dbContext.KastraModulePermissions.Update(modulePermission); } else { _dbContext.KastraModulePermissions.Add(modulePermission); } await _dbContext.SaveChangesAsync(); // Clear cache _cacheEngine.ClearCacheContains("Module"); return(true); }
/// <inheritdoc cref="IViewManager.SavePageAsync(PageInfo)" /> public async Task <bool> SavePageAsync(PageInfo page) { if (page is null) { return(false); } Page currentPage = await _dbContext.KastraPages.SingleOrDefaultAsync(p => p.PageId == page.PageId); if (currentPage is not null) { if (currentPage.PageTemplateId != page.PageTemplateId) { // Get the modules of the page List <Module> modules = await _dbContext.KastraModules .Where(m => m.PageId == currentPage.PageId) .ToListAsync(); // Remove foreach (Module module in modules) { module.IsDisabled = true; } _cacheEngine.ClearCacheContains("Module"); } currentPage.KeyName = page.KeyName; currentPage.MetaDescription = page.MetaDescription; currentPage.MetaKeywords = page.MetaKeywords; currentPage.MetaRobot = page.MetaRobot; currentPage.PageTemplateId = page.PageTemplateId; currentPage.Title = page.Title; _dbContext.KastraPages.Update(currentPage); } else { _dbContext.KastraPages.Add(page.ToPage()); } await _dbContext.SaveChangesAsync(); // Clear cache _cacheEngine.ClearCacheContains("Page"); return(true); }