optimize for IEnumerable and remove unnecessary exception handling in repostory
This commit is contained in:
		@ -20,72 +20,37 @@ namespace Oqtane.Repository
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Alias> GetAliases()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            return _cache.GetOrCreate("aliases", entry =>
 | 
			
		||||
            {
 | 
			
		||||
                return _cache.GetOrCreate("aliases", entry =>
 | 
			
		||||
                {
 | 
			
		||||
                    entry.SlidingExpiration = TimeSpan.FromMinutes(30);
 | 
			
		||||
                    return db.Alias.ToList();
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
                entry.SlidingExpiration = TimeSpan.FromMinutes(30);
 | 
			
		||||
                return db.Alias.ToList();
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Alias AddAlias(Alias Alias)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Alias.Add(Alias);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Alias;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Alias.Add(Alias);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Alias;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Alias UpdateAlias(Alias Alias)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(Alias).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Alias;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(Alias).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Alias;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Alias GetAlias(int AliasId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Alias.Find(AliasId);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Alias.Find(AliasId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeleteAlias(int AliasId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                Alias alias = db.Alias.Find(AliasId);
 | 
			
		||||
                db.Alias.Remove(alias);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            Alias alias = db.Alias.Find(AliasId);
 | 
			
		||||
            db.Alias.Remove(alias);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,7 @@ namespace Oqtane.Repository
 | 
			
		||||
        void UpdatePermissions(int SiteId, string EntityName, int EntityId, string Permissions);
 | 
			
		||||
        Permission GetPermission(int PermissionId);
 | 
			
		||||
        void DeletePermission(int PermissionId);
 | 
			
		||||
        string EncodePermissions(int EntityId, List<Permission> Permissions);
 | 
			
		||||
        List<Permission> DecodePermissions(string Permissions, int SiteId, string EntityName, int EntityId);
 | 
			
		||||
        string EncodePermissions(int EntityId, IEnumerable<Permission> Permissions);
 | 
			
		||||
        IEnumerable<Permission> DecodePermissions(string Permissions, int SiteId, string EntityName, int EntityId);
 | 
			
		||||
     }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -18,98 +18,55 @@ namespace Oqtane.Repository
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Module> GetModules()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Module.ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Module;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Module> GetModules(int SiteId, string ModuleDefinitionName)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            IEnumerable<Permission> permissions = Permissions.GetPermissions(SiteId, "Module").ToList();
 | 
			
		||||
            IEnumerable<Module> modules = db.Module
 | 
			
		||||
                .Where(item => item.SiteId == SiteId)
 | 
			
		||||
                .Where(item => item.ModuleDefinitionName == ModuleDefinitionName);
 | 
			
		||||
            foreach (Module module in modules)
 | 
			
		||||
            {
 | 
			
		||||
                List<Permission> permissions = Permissions.GetPermissions(SiteId, "Module").ToList();
 | 
			
		||||
                List<Module> modules = db.Module
 | 
			
		||||
                    .Where(item => item.SiteId == SiteId)
 | 
			
		||||
                    .Where(item => item.ModuleDefinitionName == ModuleDefinitionName)
 | 
			
		||||
                    .ToList();
 | 
			
		||||
                foreach (Module module in modules)
 | 
			
		||||
                {
 | 
			
		||||
                    module.Permissions = Permissions.EncodePermissions(module.ModuleId, permissions);
 | 
			
		||||
                }
 | 
			
		||||
                return modules;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
                module.Permissions = Permissions.EncodePermissions(module.ModuleId, permissions);
 | 
			
		||||
            }
 | 
			
		||||
            return modules;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Module AddModule(Module Module)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Module.Add(Module);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                Permissions.UpdatePermissions(Module.SiteId, "Module", Module.ModuleId, Module.Permissions);
 | 
			
		||||
                return Module;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Module.Add(Module);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            Permissions.UpdatePermissions(Module.SiteId, "Module", Module.ModuleId, Module.Permissions);
 | 
			
		||||
            return Module;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Module UpdateModule(Module Module)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(Module).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                Permissions.UpdatePermissions(Module.SiteId, "Module", Module.ModuleId, Module.Permissions);
 | 
			
		||||
                return Module;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(Module).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            Permissions.UpdatePermissions(Module.SiteId, "Module", Module.ModuleId, Module.Permissions);
 | 
			
		||||
            return Module;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Module GetModule(int ModuleId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            Module module = db.Module.Find(ModuleId);
 | 
			
		||||
            if (module != null)
 | 
			
		||||
            {
 | 
			
		||||
                Module module = db.Module.Find(ModuleId);
 | 
			
		||||
                if (module != null)
 | 
			
		||||
                {
 | 
			
		||||
                    List<Permission> permissions = Permissions.GetPermissions("Module", module.ModuleId).ToList();
 | 
			
		||||
                    module.Permissions = Permissions.EncodePermissions(module.ModuleId, permissions);
 | 
			
		||||
                }
 | 
			
		||||
                return module;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
                List<Permission> permissions = Permissions.GetPermissions("Module", module.ModuleId).ToList();
 | 
			
		||||
                module.Permissions = Permissions.EncodePermissions(module.ModuleId, permissions);
 | 
			
		||||
            }
 | 
			
		||||
            return module;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeleteModule(int ModuleId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                Module Module = db.Module.Find(ModuleId);
 | 
			
		||||
                Permissions.UpdatePermissions(Module.SiteId, "Module", ModuleId, "");
 | 
			
		||||
                db.Module.Remove(Module);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            Module Module = db.Module.Find(ModuleId);
 | 
			
		||||
            Permissions.UpdatePermissions(Module.SiteId, "Module", ModuleId, "");
 | 
			
		||||
            db.Module.Remove(Module);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -18,97 +18,54 @@ namespace Oqtane.Repository
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<PageModule> GetPageModules()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.PageModule.ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.PageModule;
 | 
			
		||||
        }
 | 
			
		||||
        public IEnumerable<PageModule> GetPageModules(int PageId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            IEnumerable<PageModule> pagemodules = db.PageModule.Where(item => item.PageId == PageId)
 | 
			
		||||
                .Include(item => item.Module); // eager load modules
 | 
			
		||||
            if (pagemodules != null && pagemodules.Any())
 | 
			
		||||
            {
 | 
			
		||||
                List<PageModule> pagemodules = db.PageModule.Where(item => item.PageId == PageId)
 | 
			
		||||
                    .Include(item => item.Module) // eager load modules
 | 
			
		||||
                    .ToList();
 | 
			
		||||
                if (pagemodules != null && pagemodules.Any())
 | 
			
		||||
                IEnumerable<Permission> permissions = Permissions.GetPermissions(pagemodules.FirstOrDefault().Module.SiteId, "Module").ToList();
 | 
			
		||||
                foreach (PageModule pagemodule in pagemodules)
 | 
			
		||||
                {
 | 
			
		||||
                    List<Permission> permissions = Permissions.GetPermissions(pagemodules.FirstOrDefault().Module.SiteId, "Module").ToList();
 | 
			
		||||
                    foreach (PageModule pagemodule in pagemodules)
 | 
			
		||||
                    {
 | 
			
		||||
                        pagemodule.Module.Permissions = Permissions.EncodePermissions(pagemodule.ModuleId, permissions);
 | 
			
		||||
                    }
 | 
			
		||||
                    pagemodule.Module.Permissions = Permissions.EncodePermissions(pagemodule.ModuleId, permissions);
 | 
			
		||||
                }
 | 
			
		||||
                return pagemodules;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return pagemodules;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public PageModule AddPageModule(PageModule PageModule)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.PageModule.Add(PageModule);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return PageModule;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.PageModule.Add(PageModule);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return PageModule;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public PageModule UpdatePageModule(PageModule PageModule)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(PageModule).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return PageModule;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(PageModule).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return PageModule;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public PageModule GetPageModule(int PageModuleId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            PageModule pagemodule = db.PageModule.Include(item => item.Module) // eager load modules
 | 
			
		||||
                .SingleOrDefault(item => item.PageModuleId == PageModuleId);
 | 
			
		||||
            if (pagemodule != null)
 | 
			
		||||
            {
 | 
			
		||||
                PageModule pagemodule = db.PageModule.Include(item => item.Module) // eager load modules
 | 
			
		||||
                    .SingleOrDefault(item => item.PageModuleId == PageModuleId);
 | 
			
		||||
                if (pagemodule != null)
 | 
			
		||||
                {
 | 
			
		||||
                    List<Permission> permissions = Permissions.GetPermissions("Module", pagemodule.ModuleId).ToList();
 | 
			
		||||
                    pagemodule.Module.Permissions = Permissions.EncodePermissions(pagemodule.ModuleId, permissions);
 | 
			
		||||
                }
 | 
			
		||||
                return pagemodule;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
                IEnumerable<Permission> permissions = Permissions.GetPermissions("Module", pagemodule.ModuleId);
 | 
			
		||||
                pagemodule.Module.Permissions = Permissions.EncodePermissions(pagemodule.ModuleId, permissions);
 | 
			
		||||
            }
 | 
			
		||||
            return pagemodule;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeletePageModule(int PageModuleId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                PageModule PageModule = db.PageModule.Find(PageModuleId);
 | 
			
		||||
                db.PageModule.Remove(PageModule);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            PageModule PageModule = db.PageModule.Find(PageModuleId);
 | 
			
		||||
            db.PageModule.Remove(PageModule);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -18,95 +18,53 @@ namespace Oqtane.Repository
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Page> GetPages()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Page.ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Page.ToList();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Page> GetPages(int SiteId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            IEnumerable<Permission> permissions = Permissions.GetPermissions(SiteId, "Page").ToList();
 | 
			
		||||
            IEnumerable<Page> pages = db.Page.Where(item => item.SiteId == SiteId);
 | 
			
		||||
            foreach(Page page in pages)
 | 
			
		||||
            {
 | 
			
		||||
                List<Permission> permissions = Permissions.GetPermissions(SiteId, "Page").ToList();
 | 
			
		||||
                List<Page> pages = db.Page.Where(item => item.SiteId == SiteId).ToList();
 | 
			
		||||
                foreach(Page page in pages)
 | 
			
		||||
                {
 | 
			
		||||
                    page.Permissions = Permissions.EncodePermissions(page.PageId, permissions);
 | 
			
		||||
                }
 | 
			
		||||
                return pages;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
                page.Permissions = Permissions.EncodePermissions(page.PageId, permissions);
 | 
			
		||||
            }
 | 
			
		||||
            return pages;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Page AddPage(Page Page)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Page.Add(Page);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                Permissions.UpdatePermissions(Page.SiteId, "Page", Page.PageId, Page.Permissions);
 | 
			
		||||
                return Page;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Page.Add(Page);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            Permissions.UpdatePermissions(Page.SiteId, "Page", Page.PageId, Page.Permissions);
 | 
			
		||||
            return Page;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Page UpdatePage(Page Page)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(Page).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                Permissions.UpdatePermissions(Page.SiteId, "Page", Page.PageId, Page.Permissions);
 | 
			
		||||
                return Page;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(Page).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            Permissions.UpdatePermissions(Page.SiteId, "Page", Page.PageId, Page.Permissions);
 | 
			
		||||
            return Page;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Page GetPage(int PageId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            Page page = db.Page.Find(PageId);
 | 
			
		||||
            if (page != null)
 | 
			
		||||
            {
 | 
			
		||||
                Page page = db.Page.Find(PageId);
 | 
			
		||||
                if (page != null)
 | 
			
		||||
                {
 | 
			
		||||
                    List<Permission> permissions = Permissions.GetPermissions("Page", page.PageId).ToList();
 | 
			
		||||
                    page.Permissions = Permissions.EncodePermissions(page.PageId, permissions);
 | 
			
		||||
                }
 | 
			
		||||
                return page;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
                IEnumerable<Permission> permissions = Permissions.GetPermissions("Page", page.PageId);
 | 
			
		||||
                page.Permissions = Permissions.EncodePermissions(page.PageId, permissions);
 | 
			
		||||
            }
 | 
			
		||||
            return page;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeletePage(int PageId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                Page Page = db.Page.Find(PageId);
 | 
			
		||||
                Permissions.UpdatePermissions(Page.SiteId, "Page", PageId, "");
 | 
			
		||||
                db.Page.Remove(Page);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            Page Page = db.Page.Find(PageId);
 | 
			
		||||
            Permissions.UpdatePermissions(Page.SiteId, "Page", PageId, "");
 | 
			
		||||
            db.Page.Remove(Page);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -22,80 +22,46 @@ namespace Oqtane.Repository
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Permission> GetPermissions(int SiteId, string EntityName)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Permission.Where(item => item.SiteId == SiteId)
 | 
			
		||||
                    .Where(item => item.EntityName == EntityName)
 | 
			
		||||
                    .Include(item => item.Role); // eager load roles
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Permission.Where(item => item.SiteId == SiteId)
 | 
			
		||||
                .Where(item => item.EntityName == EntityName)
 | 
			
		||||
                .Include(item => item.Role); // eager load roles
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Permission> GetPermissions(string EntityName, int EntityId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Permission.Where(item => item.EntityName == EntityName)
 | 
			
		||||
                    .Where(item => item.EntityId == EntityId)
 | 
			
		||||
                    .Include(item => item.Role); // eager load roles
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Permission.Where(item => item.EntityName == EntityName)
 | 
			
		||||
                .Where(item => item.EntityId == EntityId)
 | 
			
		||||
                .Include(item => item.Role); // eager load roles
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Permission> GetPermissions(string EntityName, int EntityId, string PermissionName)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Permission.Where(item => item.EntityName == EntityName)
 | 
			
		||||
                    .Where(item => item.EntityId == EntityId)
 | 
			
		||||
                    .Where(item => item.PermissionName == PermissionName)
 | 
			
		||||
                    .Include(item => item.Role); // eager load roles
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Permission.Where(item => item.EntityName == EntityName)
 | 
			
		||||
                .Where(item => item.EntityId == EntityId)
 | 
			
		||||
                .Where(item => item.PermissionName == PermissionName)
 | 
			
		||||
                .Include(item => item.Role); // eager load roles
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Permission AddPermission(Permission Permission)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Permission.Add(Permission);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Permission;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Permission.Add(Permission);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Permission;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Permission UpdatePermission(Permission Permission)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(Permission).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Permission;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(Permission).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Permission;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void UpdatePermissions(int SiteId, string EntityName, int EntityId, string Permissions)
 | 
			
		||||
        {
 | 
			
		||||
            // get current permissions and delete
 | 
			
		||||
            List<Permission> permissions = db.Permission.Where(item => item.EntityName == EntityName)
 | 
			
		||||
                .Where(item => item.EntityId == EntityId).ToList();
 | 
			
		||||
            IEnumerable<Permission> permissions = db.Permission
 | 
			
		||||
                .Where(item => item.EntityName == EntityName)
 | 
			
		||||
                .Where(item => item.EntityId == EntityId);
 | 
			
		||||
            foreach(Permission permission in permissions)
 | 
			
		||||
            {
 | 
			
		||||
                db.Permission.Remove(permission);
 | 
			
		||||
@ -111,32 +77,18 @@ namespace Oqtane.Repository
 | 
			
		||||
 | 
			
		||||
        public Permission GetPermission(int PermissionId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Permission.Find(PermissionId);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Permission.Find(PermissionId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeletePermission(int PermissionId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                Permission Permission = db.Permission.Find(PermissionId);
 | 
			
		||||
                db.Permission.Remove(Permission);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            Permission Permission = db.Permission.Find(PermissionId);
 | 
			
		||||
            db.Permission.Remove(Permission);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // permissions are stored in the format "{permissionname:!rolename1;![userid1];rolename2;rolename3;[userid2];[userid3]}" where "!" designates Deny permissions
 | 
			
		||||
        public string EncodePermissions(int EntityId, List<Permission> Permissions)
 | 
			
		||||
        public string EncodePermissions(int EntityId, IEnumerable<Permission> Permissions)
 | 
			
		||||
        {
 | 
			
		||||
            List<PermissionString> permissionstrings = new List<PermissionString>();
 | 
			
		||||
            string permissionname = "";
 | 
			
		||||
@ -189,7 +141,7 @@ namespace Oqtane.Repository
 | 
			
		||||
            return JsonSerializer.Serialize(permissionstrings);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public List<Permission> DecodePermissions(string PermissionStrings, int SiteId, string EntityName, int EntityId)
 | 
			
		||||
        public IEnumerable<Permission> DecodePermissions(string PermissionStrings, int SiteId, string EntityName, int EntityId)
 | 
			
		||||
        {
 | 
			
		||||
            List<Permission> permissions = new List<Permission>();
 | 
			
		||||
            List<Role> roles = Roles.GetRoles(SiteId, true).ToList();
 | 
			
		||||
 | 
			
		||||
@ -16,93 +16,44 @@ namespace Oqtane.Repository
 | 
			
		||||
            
 | 
			
		||||
        public IEnumerable<Role> GetRoles()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Role.ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Role;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Role> GetRoles(int SiteId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Role.Where(item => item.SiteId == SiteId).ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Role.Where(item => item.SiteId == SiteId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Role> GetRoles(int SiteId, bool IncludeGlobalRoles)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Role.Where(item => item.SiteId == SiteId || item.SiteId == null).ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Role.Where(item => item.SiteId == SiteId || item.SiteId == null);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public Role AddRole(Role Role)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Role.Add(Role);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Role;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Role.Add(Role);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Role;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Role UpdateRole(Role Role)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(Role).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Role;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(Role).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Role;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Role GetRole(int RoleId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Role.Find(RoleId);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Role.Find(RoleId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeleteRole(int RoleId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                Role Role = db.Role.Find(RoleId);
 | 
			
		||||
                db.Role.Remove(Role);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            Role Role = db.Role.Find(RoleId);
 | 
			
		||||
            db.Role.Remove(Role);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -16,69 +16,34 @@ namespace Oqtane.Repository
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Setting> GetSettings(string EntityName, int EntityId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Setting.Where(item => item.EntityName == EntityName)
 | 
			
		||||
                    .Where(item => item.EntityId == EntityId).ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Setting.Where(item => item.EntityName == EntityName)
 | 
			
		||||
                .Where(item => item.EntityId == EntityId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Setting AddSetting(Setting Setting)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Setting.Add(Setting);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Setting;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Setting.Add(Setting);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Setting;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Setting UpdateSetting(Setting Setting)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(Setting).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Setting;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(Setting).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Setting;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Setting GetSetting(int SettingId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Setting.Find(SettingId);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Setting.Find(SettingId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeleteSetting(int SettingId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                Setting Setting = db.Setting.Find(SettingId);
 | 
			
		||||
                db.Setting.Remove(Setting);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            Setting Setting = db.Setting.Find(SettingId);
 | 
			
		||||
            db.Setting.Remove(Setting);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -16,68 +16,33 @@ namespace Oqtane.Repository
 | 
			
		||||
            
 | 
			
		||||
        public IEnumerable<Site> GetSites()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Site.ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Site;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Site AddSite(Site Site)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Site.Add(Site);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Site;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Site.Add(Site);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Site;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Site UpdateSite(Site Site)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(Site).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Site;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(Site).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Site;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Site GetSite(int siteId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Site.Find(siteId);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Site.Find(siteId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeleteSite(int siteId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                Site site = db.Site.Find(siteId);
 | 
			
		||||
                db.Site.Remove(site);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            Site site = db.Site.Find(siteId);
 | 
			
		||||
            db.Site.Remove(site);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -16,94 +16,45 @@ namespace Oqtane.Repository
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<SiteUser> GetSiteUsers()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.SiteUser.ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.SiteUser;
 | 
			
		||||
        }
 | 
			
		||||
        public IEnumerable<SiteUser> GetSiteUsers(int SiteId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.SiteUser.Where(item => item.SiteId == SiteId)
 | 
			
		||||
                    .Include(item => item.User) // eager load users
 | 
			
		||||
                    .ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.SiteUser.Where(item => item.SiteId == SiteId)
 | 
			
		||||
                .Include(item => item.User); // eager load users
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public SiteUser AddSiteUser(SiteUser SiteUser)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.SiteUser.Add(SiteUser);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return SiteUser;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.SiteUser.Add(SiteUser);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return SiteUser;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public SiteUser UpdateSiteUser(SiteUser SiteUser)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(SiteUser).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return SiteUser;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(SiteUser).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return SiteUser;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public SiteUser GetSiteUser(int SiteUserId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.SiteUser.Include(item => item.User) // eager load users
 | 
			
		||||
                    .SingleOrDefault(item => item.SiteUserId == SiteUserId);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.SiteUser.Include(item => item.User) // eager load users
 | 
			
		||||
                .SingleOrDefault(item => item.SiteUserId == SiteUserId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public SiteUser GetSiteUser(int SiteId, int UserId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.SiteUser.Where(item => item.SiteId == SiteId).Where(item => item.UserId == UserId).FirstOrDefault();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.SiteUser.Where(item => item.SiteId == SiteId)
 | 
			
		||||
                .Where(item => item.UserId == UserId).FirstOrDefault();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeleteSiteUser(int SiteUserId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                SiteUser SiteUser = db.SiteUser.Find(SiteUserId);
 | 
			
		||||
                db.SiteUser.Remove(SiteUser);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            SiteUser SiteUser = db.SiteUser.Find(SiteUserId);
 | 
			
		||||
            db.SiteUser.Remove(SiteUser);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -21,72 +21,37 @@ namespace Oqtane.Repository
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<Tenant> GetTenants()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            return _cache.GetOrCreate("tenants", entry =>
 | 
			
		||||
            {
 | 
			
		||||
                return _cache.GetOrCreate("tenants", entry =>
 | 
			
		||||
                {
 | 
			
		||||
                    entry.SlidingExpiration = TimeSpan.FromMinutes(30);
 | 
			
		||||
                    return db.Tenant.ToList();
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
                entry.SlidingExpiration = TimeSpan.FromMinutes(30);
 | 
			
		||||
                return db.Tenant.ToList();
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Tenant AddTenant(Tenant Tenant)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Tenant.Add(Tenant);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Tenant;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Tenant.Add(Tenant);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Tenant;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Tenant UpdateTenant(Tenant Tenant)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(Tenant).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return Tenant;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(Tenant).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return Tenant;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Tenant GetTenant(int TenantId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.Tenant.Find(TenantId);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.Tenant.Find(TenantId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeleteTenant(int TenantId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                Tenant tenant = db.Tenant.Find(TenantId);
 | 
			
		||||
                db.Tenant.Remove(tenant);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
        { 
 | 
			
		||||
            Tenant tenant = db.Tenant.Find(TenantId);
 | 
			
		||||
            db.Tenant.Remove(tenant);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -35,28 +35,14 @@ namespace Oqtane.Repository
 | 
			
		||||
 | 
			
		||||
        public Alias GetAlias()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                IEnumerable<Alias> aliases = _aliasrepository.GetAliases(); // cached
 | 
			
		||||
                return aliases.Where(item => item.Name == aliasname).FirstOrDefault();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            IEnumerable<Alias> aliases = _aliasrepository.GetAliases(); // cached
 | 
			
		||||
            return aliases.Where(item => item.Name == aliasname).FirstOrDefault();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Tenant GetTenant()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                IEnumerable<Tenant> tenants = _tenantrepository.GetTenants(); // cached
 | 
			
		||||
                return tenants.Where(item => item.TenantId == GetAlias().TenantId).FirstOrDefault();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            IEnumerable<Tenant> tenants = _tenantrepository.GetTenants(); // cached
 | 
			
		||||
            return tenants.Where(item => item.TenantId == GetAlias().TenantId).FirstOrDefault();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -16,80 +16,38 @@ namespace Oqtane.Repository
 | 
			
		||||
            
 | 
			
		||||
        public IEnumerable<User> GetUsers()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.User.ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.User;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public User AddUser(User user)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.User.Add(user);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return user;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.User.Add(user);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return user;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public User UpdateUser(User user)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(user).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return user;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(user).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return user;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public User GetUser(int userId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.User.Find(userId);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.User.Find(userId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public User GetUser(string Username)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.User.Where(item => item.Username == Username).FirstOrDefault();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.User.Where(item => item.Username == Username).FirstOrDefault();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeleteUser(int userId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                User user = db.User.Find(userId);
 | 
			
		||||
                db.User.Remove(user);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            User user = db.User.Find(userId);
 | 
			
		||||
            db.User.Remove(user);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -16,97 +16,46 @@ namespace Oqtane.Repository
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<UserRole> GetUserRoles()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.UserRole.ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.UserRole;
 | 
			
		||||
        }
 | 
			
		||||
        public IEnumerable<UserRole> GetUserRoles(int UserId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.UserRole.Where(item => item.UserId == UserId)
 | 
			
		||||
                    .Include(item => item.Role) // eager load roles
 | 
			
		||||
                    .ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.UserRole.Where(item => item.UserId == UserId)
 | 
			
		||||
                .Include(item => item.Role); // eager load roles
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public IEnumerable<UserRole> GetUserRoles(int UserId, int SiteId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.UserRole.Where(item => item.UserId == UserId)
 | 
			
		||||
                    .Include(item => item.Role) // eager load roles
 | 
			
		||||
                    .Where(item => item.Role.SiteId == SiteId)
 | 
			
		||||
                    .ToList();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.UserRole.Where(item => item.UserId == UserId)
 | 
			
		||||
                .Include(item => item.Role) // eager load roles
 | 
			
		||||
                .Where(item => item.Role.SiteId == SiteId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public UserRole AddUserRole(UserRole UserRole)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.UserRole.Add(UserRole);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return UserRole;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.UserRole.Add(UserRole);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return UserRole;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public UserRole UpdateUserRole(UserRole UserRole)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                db.Entry(UserRole).State = EntityState.Modified;
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
                return UserRole;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            db.Entry(UserRole).State = EntityState.Modified;
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
            return UserRole;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public UserRole GetUserRole(int UserRoleId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                return db.UserRole.Include(item => item.Role) // eager load roles
 | 
			
		||||
                    .SingleOrDefault(item => item.UserRoleId == UserRoleId);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            return db.UserRole.Include(item => item.Role) // eager load roles
 | 
			
		||||
                .SingleOrDefault(item => item.UserRoleId == UserRoleId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void DeleteUserRole(int UserRoleId)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                UserRole UserRole = db.UserRole.Find(UserRoleId);
 | 
			
		||||
                db.UserRole.Remove(UserRole);
 | 
			
		||||
                db.SaveChanges();
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                throw;
 | 
			
		||||
            }
 | 
			
		||||
            UserRole UserRole = db.UserRole.Find(UserRoleId);
 | 
			
		||||
            db.UserRole.Remove(UserRole);
 | 
			
		||||
            db.SaveChanges();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user