/// <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);
        }
예제 #3
0
        /// <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);
        }