Refactored repository pattern for Add and Update methods so that they return their respective entity objects

This commit is contained in:
Shaun Walker 2019-08-05 09:31:04 -04:00
parent b9c007998e
commit 4fda7b17d0
43 changed files with 353 additions and 137 deletions

View File

@ -37,14 +37,14 @@ namespace Oqtane.Services
return await http.GetJsonAsync<Alias>(apiurl + "/" + AliasId.ToString());
}
public async Task AddAliasAsync(Alias alias)
public async Task<Alias> AddAliasAsync(Alias alias)
{
await http.PostJsonAsync(apiurl, alias);
return await http.PostJsonAsync<Alias>(apiurl, alias);
}
public async Task UpdateAliasAsync(Alias alias)
public async Task<Alias> UpdateAliasAsync(Alias alias)
{
await http.PutJsonAsync(apiurl + "/" + alias.AliasId.ToString(), alias);
return await http.PutJsonAsync<Alias>(apiurl + "/" + alias.AliasId.ToString(), alias);
}
public async Task DeleteAliasAsync(int AliasId)
{

View File

@ -10,9 +10,9 @@ namespace Oqtane.Services
Task<Alias> GetAliasAsync(int AliasId);
Task AddAliasAsync(Alias alias);
Task<Alias> AddAliasAsync(Alias Alias);
Task UpdateAliasAsync(Alias alias);
Task<Alias> UpdateAliasAsync(Alias Alias);
Task DeleteAliasAsync(int AliasId);
}

View File

@ -9,8 +9,8 @@ namespace Oqtane.Services
Task<List<Module>> GetModulesAsync(int PageId);
Task<List<Module>> GetModulesAsync(int SiteId, string ModuleDefinitionName);
Task<Module> GetModuleAsync(int ModuleId);
Task AddModuleAsync(Module module);
Task UpdateModuleAsync(Module module);
Task<Module> AddModuleAsync(Module Module);
Task<Module> UpdateModuleAsync(Module Module);
Task DeleteModuleAsync(int ModuleId);
}
}

View File

@ -7,8 +7,8 @@ namespace Oqtane.Services
public interface IPageModuleService
{
Task<List<PageModule>> GetPageModulesAsync();
Task AddPageModuleAsync(PageModule pagemodule);
Task UpdatePageModuleAsync(PageModule pagemodule);
Task<PageModule> AddPageModuleAsync(PageModule PageModule);
Task<PageModule> UpdatePageModuleAsync(PageModule PageModule);
Task DeletePageModuleAsync(int PageModuleId);
}
}

View File

@ -8,8 +8,8 @@ namespace Oqtane.Services
{
Task<List<Page>> GetPagesAsync(int SiteId);
Task<Page> GetPageAsync(int PageId);
Task AddPageAsync(Page page);
Task UpdatePageAsync(Page page);
Task<Page> AddPageAsync(Page Page);
Task<Page> UpdatePageAsync(Page Page);
Task DeletePageAsync(int PageId);
}
}

View File

@ -10,9 +10,9 @@ namespace Oqtane.Services
Task<Site> GetSiteAsync(int SiteId);
Task AddSiteAsync(Site site);
Task<Site> AddSiteAsync(Site Site);
Task UpdateSiteAsync(Site site);
Task<Site> UpdateSiteAsync(Site Site);
Task DeleteSiteAsync(int SiteId);
}

View File

@ -12,18 +12,18 @@ namespace Oqtane.Services
Task<User> GetUserAsync(string Username);
Task AddUserAsync(User user);
Task<User> AddUserAsync(User User);
Task UpdateUserAsync(User user);
Task<User> UpdateUserAsync(User User);
Task DeleteUserAsync(int UserId);
Task<User> GetCurrentUserAsync();
Task<User> LoginUserAsync(User user);
Task<User> LoginUserAsync(User User);
Task LogoutUserAsync();
bool IsAuthorized(User user, string accesscontrollist);
bool IsAuthorized(User User, string AccessControlList);
}
}

View File

@ -46,14 +46,14 @@ namespace Oqtane.Services
return await http.GetJsonAsync<Module>(apiurl + "/" + ModuleId.ToString());
}
public async Task AddModuleAsync(Module module)
public async Task<Module> AddModuleAsync(Module Module)
{
await http.PostJsonAsync(apiurl, module);
return await http.PostJsonAsync<Module>(apiurl, Module);
}
public async Task UpdateModuleAsync(Module module)
public async Task<Module> UpdateModuleAsync(Module Module)
{
await http.PutJsonAsync(apiurl + "/" + module.ModuleId.ToString(), module);
return await http.PutJsonAsync<Module>(apiurl + "/" + Module.ModuleId.ToString(), Module);
}
public async Task DeleteModuleAsync(int ModuleId)

View File

@ -31,14 +31,14 @@ namespace Oqtane.Services
return await http.GetJsonAsync<List<PageModule>>(apiurl);
}
public async Task AddPageModuleAsync(PageModule pagemodule)
public async Task<PageModule> AddPageModuleAsync(PageModule PageModule)
{
await http.PostJsonAsync(apiurl, pagemodule);
return await http.PostJsonAsync<PageModule>(apiurl, PageModule);
}
public async Task UpdatePageModuleAsync(PageModule pagemodule)
public async Task<PageModule> UpdatePageModuleAsync(PageModule PageModule)
{
await http.PutJsonAsync(apiurl + "/" + pagemodule.PageModuleId.ToString(), pagemodule);
return await http.PutJsonAsync<PageModule>(apiurl + "/" + PageModule.PageModuleId.ToString(), PageModule);
}
public async Task DeletePageModuleAsync(int PageModuleId)

View File

@ -37,14 +37,14 @@ namespace Oqtane.Services
return await http.GetJsonAsync<Page>(apiurl + "/" + PageId.ToString());
}
public async Task AddPageAsync(Page page)
public async Task<Page> AddPageAsync(Page Page)
{
await http.PostJsonAsync(apiurl, page);
return await http.PostJsonAsync<Page>(apiurl, Page);
}
public async Task UpdatePageAsync(Page page)
public async Task<Page> UpdatePageAsync(Page Page)
{
await http.PutJsonAsync(apiurl + "/" + page.PageId.ToString(), page);
return await http.PutJsonAsync<Page>(apiurl + "/" + Page.PageId.ToString(), Page);
}
public async Task DeletePageAsync(int PageId)
{

View File

@ -37,14 +37,14 @@ namespace Oqtane.Services
return await http.GetJsonAsync<Site>(apiurl + "/" + SiteId.ToString());
}
public async Task AddSiteAsync(Site site)
public async Task<Site> AddSiteAsync(Site Site)
{
await http.PostJsonAsync(apiurl, site);
return await http.PostJsonAsync<Site>(apiurl, Site);
}
public async Task UpdateSiteAsync(Site site)
public async Task<Site> UpdateSiteAsync(Site Site)
{
await http.PutJsonAsync(apiurl + "/" + site.SiteId.ToString(), site);
return await http.PutJsonAsync<Site>(apiurl + "/" + Site.SiteId.ToString(), Site);
}
public async Task DeleteSiteAsync(int SiteId)
{

View File

@ -43,14 +43,14 @@ namespace Oqtane.Services
return await http.GetJsonAsync<User>(apiurl + "/name/" + Username);
}
public async Task AddUserAsync(User user)
public async Task<User> AddUserAsync(User User)
{
await http.PostJsonAsync(apiurl, user);
return await http.PostJsonAsync<User>(apiurl, User);
}
public async Task UpdateUserAsync(User user)
public async Task<User> UpdateUserAsync(User User)
{
await http.PutJsonAsync(apiurl + "/" + user.UserId.ToString(), user);
return await http.PutJsonAsync<User>(apiurl + "/" + User.UserId.ToString(), User);
}
public async Task DeleteUserAsync(int UserId)
{
@ -62,9 +62,9 @@ namespace Oqtane.Services
return await http.GetJsonAsync<User>(apiurl + "/current");
}
public async Task<User> LoginUserAsync(User user)
public async Task<User> LoginUserAsync(User User)
{
return await http.PostJsonAsync<User>(apiurl + "/login", user);
return await http.PostJsonAsync<User>(apiurl + "/login", User);
}
public async Task LogoutUserAsync()
@ -74,23 +74,23 @@ namespace Oqtane.Services
}
// ACLs are stored in the format "!rolename1;![userid1];rolename2;rolename3;[userid2];[userid3]" where "!" designates Deny permissions
public bool IsAuthorized(User user, string accesscontrollist)
public bool IsAuthorized(User User, string AccessControlList)
{
bool isAllowed = false;
if (user != null)
if (User != null)
{
//super user always has full access
isAllowed = user.IsSuperUser;
isAllowed = User.IsSuperUser;
}
if (!isAllowed)
{
if (accesscontrollist != null)
if (AccessControlList != null)
{
foreach (string permission in accesscontrollist.Split(new[] { ';' }))
foreach (string permission in AccessControlList.Split(new[] { ';' }))
{
bool? allowed = VerifyPermission(user, permission);
bool? allowed = VerifyPermission(User, permission);
if (allowed.HasValue)
{
isAllowed = allowed.Value;

View File

@ -117,7 +117,6 @@
private string DatabaseType = "LocalDB";
private string ServerName = "(LocalDb)\\MSSQLLocalDB";
private string DatabaseName = "Oqtane-" + DateTime.Now.ToString("yyyyMMddHHmm");
private bool IntegratedSecurity = true;
private string Username = "";
private string Password = "";
private string HostUsername = "host";

View File

@ -31,18 +31,24 @@ namespace Oqtane.Controllers
// POST api/<controller>
[HttpPost]
public void Post([FromBody] Alias alias)
public Alias Post([FromBody] Alias Alias)
{
if (ModelState.IsValid)
aliases.AddAlias(alias);
{
Alias = aliases.AddAlias(Alias);
}
return Alias;
}
// PUT api/<controller>/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] Alias alias)
public Alias Put(int id, [FromBody] Alias Alias)
{
if (ModelState.IsValid)
aliases.UpdateAlias(alias);
{
Alias = aliases.UpdateAlias(Alias);
}
return Alias;
}
// DELETE api/<controller>/5

View File

@ -53,18 +53,24 @@ namespace Oqtane.Controllers
// POST api/<controller>
[HttpPost]
public void Post([FromBody] Module Module)
public Module Post([FromBody] Module Module)
{
if (ModelState.IsValid)
modules.AddModule(Module);
{
Module = modules.AddModule(Module);
}
return Module;
}
// PUT api/<controller>/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] Module Module)
public Module Put(int id, [FromBody] Module Module)
{
if (ModelState.IsValid)
modules.UpdateModule(Module);
{
Module = modules.UpdateModule(Module);
}
return Module;
}
// DELETE api/<controller>/5

View File

@ -38,18 +38,24 @@ namespace Oqtane.Controllers
// POST api/<controller>
[HttpPost]
public void Post([FromBody] Page Page)
public Page Post([FromBody] Page Page)
{
if (ModelState.IsValid)
pages.AddPage(Page);
{
Page = pages.AddPage(Page);
}
return Page;
}
// PUT api/<controller>/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] Page Page)
public Page Put(int id, [FromBody] Page Page)
{
if (ModelState.IsValid)
pages.UpdatePage(Page);
{
Page = pages.UpdatePage(Page);
}
return Page;
}
// DELETE api/<controller>/5

View File

@ -31,18 +31,24 @@ namespace Oqtane.Controllers
// POST api/<controller>
[HttpPost]
public void Post([FromBody] PageModule PageModule)
public PageModule Post([FromBody] PageModule PageModule)
{
if (ModelState.IsValid)
pagemodules.AddPageModule(PageModule);
{
PageModule = pagemodules.AddPageModule(PageModule);
}
return PageModule;
}
// PUT api/<controller>/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] PageModule PageModule)
public PageModule Put(int id, [FromBody] PageModule PageModule)
{
if (ModelState.IsValid)
pagemodules.UpdatePageModule(PageModule);
{
PageModule = pagemodules.UpdatePageModule(PageModule);
}
return PageModule;
}
// DELETE api/<controller>/5

View File

@ -31,18 +31,24 @@ namespace Oqtane.Controllers
// POST api/<controller>
[HttpPost]
public void Post([FromBody] Site site)
public Site Post([FromBody] Site Site)
{
if (ModelState.IsValid)
sites.AddSite(site);
{
Site = sites.AddSite(Site);
}
return Site;
}
// PUT api/<controller>/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] Site site)
public Site Put(int id, [FromBody] Site Site)
{
if (ModelState.IsValid)
sites.UpdateSite(site);
{
Site = sites.UpdateSite(Site);
}
return Site;
}
// DELETE api/<controller>/5

View File

@ -31,18 +31,24 @@ namespace Oqtane.Controllers
// POST api/<controller>
[HttpPost]
public void Post([FromBody] Tenant site)
public Tenant Post([FromBody] Tenant Tenant)
{
if (ModelState.IsValid)
tenants.AddTenant(site);
{
Tenant = tenants.AddTenant(Tenant);
}
return Tenant;
}
// PUT api/<controller>/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] Tenant site)
public Tenant Put(int id, [FromBody] Tenant Tenant)
{
if (ModelState.IsValid)
tenants.UpdateTenant(site);
{
Tenant = tenants.UpdateTenant(Tenant);
}
return Tenant;
}
// DELETE api/<controller>/5

View File

@ -4,8 +4,6 @@ using Oqtane.Repository;
using Oqtane.Models;
using Microsoft.AspNetCore.Identity;
using System.Threading.Tasks;
using Microsoft.Extensions.Primitives;
using System.Security.Claims;
namespace Oqtane.Controllers
{
@ -39,33 +37,35 @@ namespace Oqtane.Controllers
// POST api/<controller>
[HttpPost]
public async Task Post([FromBody] User user)
public async Task<User> Post([FromBody] User User)
{
if (ModelState.IsValid)
{
IdentityUser identityuser = await identityUserManager.FindByNameAsync(user.Username);
IdentityUser identityuser = await identityUserManager.FindByNameAsync(User.Username);
if (identityuser == null)
{
identityuser = new IdentityUser();
identityuser.UserName = user.Username;
identityuser.Email = user.Username;
var result = await identityUserManager.CreateAsync(identityuser, user.Password);
identityuser.UserName = User.Username;
identityuser.Email = User.Username;
var result = await identityUserManager.CreateAsync(identityuser, User.Password);
if (result.Succeeded)
{
users.AddUser(user);
User = users.AddUser(User);
}
}
}
return User;
}
// PUT api/<controller>/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] User user)
public User Put(int id, [FromBody] User User)
{
if (ModelState.IsValid)
{
users.UpdateUser(user);
User = users.UpdateUser(User);
}
return User;
}
// DELETE api/<controller>/5

View File

@ -31,18 +31,24 @@ namespace Oqtane.Server.Modules.HtmlText.Controllers
// POST api/<controller>
[HttpPost]
public void Post([FromBody] HtmlTextInfo HtmlText)
public HtmlTextInfo Post([FromBody] HtmlTextInfo HtmlText)
{
if (ModelState.IsValid)
htmltext.AddHtmlText(HtmlText);
{
HtmlText = htmltext.AddHtmlText(HtmlText);
}
return HtmlText;
}
// PUT api/<controller>/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] HtmlTextInfo HtmlText)
public HtmlTextInfo Put(int id, [FromBody] HtmlTextInfo HtmlText)
{
if (ModelState.IsValid)
htmltext.UpdateHtmlText(HtmlText);
{
HtmlText = htmltext.UpdateHtmlText(HtmlText);
}
return HtmlText;
}
// DELETE api/<controller>/5

View File

@ -27,12 +27,13 @@ namespace Oqtane.Server.Modules.HtmlText.Repository
}
}
public void AddHtmlText(HtmlTextInfo HtmlText)
public HtmlTextInfo AddHtmlText(HtmlTextInfo HtmlText)
{
try
{
db.HtmlText.Add(HtmlText);
db.SaveChanges();
return HtmlText;
}
catch
{
@ -40,12 +41,13 @@ namespace Oqtane.Server.Modules.HtmlText.Repository
}
}
public void UpdateHtmlText(HtmlTextInfo HtmlText)
public HtmlTextInfo UpdateHtmlText(HtmlTextInfo HtmlText)
{
try
{
db.Entry(HtmlText).State = EntityState.Modified;
db.SaveChanges();
return HtmlText;
}
catch
{

View File

@ -6,8 +6,8 @@ namespace Oqtane.Server.Modules.HtmlText.Repository
public interface IHtmlTextRepository
{
IEnumerable<HtmlTextInfo> GetHtmlText();
void AddHtmlText(HtmlTextInfo HtmlText);
void UpdateHtmlText(HtmlTextInfo HtmlText);
HtmlTextInfo AddHtmlText(HtmlTextInfo HtmlText);
HtmlTextInfo UpdateHtmlText(HtmlTextInfo HtmlText);
HtmlTextInfo GetHtmlText(int HtmlTextIdId);
void DeleteHtmlText(int HtmlTextId);
}

View File

@ -35,12 +35,13 @@ namespace Oqtane.Repository
}
}
public void AddAlias(Alias alias)
public Alias AddAlias(Alias Alias)
{
try
{
db.Alias.Add(alias);
db.Alias.Add(Alias);
db.SaveChanges();
return Alias;
}
catch
{
@ -48,12 +49,13 @@ namespace Oqtane.Repository
}
}
public void UpdateAlias(Alias alias)
public Alias UpdateAlias(Alias Alias)
{
try
{
db.Entry(alias).State = EntityState.Modified;
db.Entry(Alias).State = EntityState.Modified;
db.SaveChanges();
return Alias;
}
catch
{
@ -61,11 +63,11 @@ namespace Oqtane.Repository
}
}
public Alias GetAlias(int aliasId)
public Alias GetAlias(int AliasId)
{
try
{
Alias alias = db.Alias.Find(aliasId);
Alias alias = db.Alias.Find(AliasId);
return alias;
}
catch
@ -74,11 +76,11 @@ namespace Oqtane.Repository
}
}
public void DeleteAlias(int aliasId)
public void DeleteAlias(int AliasId)
{
try
{
Alias alias = db.Alias.Find(aliasId);
Alias alias = db.Alias.Find(AliasId);
db.Alias.Remove(alias);
db.SaveChanges();
}

View File

@ -6,9 +6,9 @@ namespace Oqtane.Repository
public interface IAliasRepository
{
IEnumerable<Alias> GetAliases();
void AddAlias(Alias alias);
void UpdateAlias(Alias alias);
Alias GetAlias(int aliasId);
void DeleteAlias(int aliasId);
Alias AddAlias(Alias Alias);
Alias UpdateAlias(Alias Alias);
Alias GetAlias(int AliasId);
void DeleteAlias(int AliasId);
}
}

View File

@ -7,8 +7,8 @@ namespace Oqtane.Repository
{
IEnumerable<Module> GetModules();
IEnumerable<Module> GetModules(int SiteId, string ModuleDefinitionName);
void AddModule(Module Module);
void UpdateModule(Module Module);
Module AddModule(Module Module);
Module UpdateModule(Module Module);
Module GetModule(int ModuleId);
void DeleteModule(int ModuleId);
}

View File

@ -7,8 +7,8 @@ namespace Oqtane.Repository
{
IEnumerable<PageModule> GetPageModules();
IEnumerable<PageModule> GetPageModules(int PageId);
void AddPageModule(PageModule PageModule);
void UpdatePageModule(PageModule PageModule);
PageModule AddPageModule(PageModule PageModule);
PageModule UpdatePageModule(PageModule PageModule);
PageModule GetPageModule(int PageModuleId);
void DeletePageModule(int PageModuleId);
}

View File

@ -7,8 +7,8 @@ namespace Oqtane.Repository
{
IEnumerable<Page> GetPages();
IEnumerable<Page> GetPages(int SiteId);
void AddPage(Page Page);
void UpdatePage(Page Page);
Page AddPage(Page Page);
Page UpdatePage(Page Page);
Page GetPage(int PageId);
void DeletePage(int PageId);
}

View File

@ -6,9 +6,9 @@ namespace Oqtane.Repository
public interface ISiteRepository
{
IEnumerable<Site> GetSites();
void AddSite(Site site);
void UpdateSite(Site site);
Site GetSite(int siteId);
void DeleteSite(int siteId);
Site AddSite(Site Site);
Site UpdateSite(Site Site);
Site GetSite(int SiteId);
void DeleteSite(int SiteId);
}
}

View File

@ -0,0 +1,15 @@
using System.Collections.Generic;
using Oqtane.Models;
namespace Oqtane.Repository
{
public interface ISiteUserRepository
{
IEnumerable<SiteUser> GetSiteUsers();
IEnumerable<SiteUser> GetSiteUsers(int SiteId, int UserId);
SiteUser AddSiteUser(SiteUser SiteUser);
SiteUser UpdateSiteUser(SiteUser SiteUser);
SiteUser GetSiteUser(int SiteUserId);
void DeleteSiteUser(int SiteUserId);
}
}

View File

@ -6,9 +6,9 @@ namespace Oqtane.Repository
public interface ITenantRepository
{
IEnumerable<Tenant> GetTenants();
void AddTenant(Tenant tenant);
void UpdateTenant(Tenant tenant);
Tenant GetTenant(int tenantId);
void DeleteTenant(int tenantId);
Tenant AddTenant(Tenant Tenant);
Tenant UpdateTenant(Tenant Tenant);
Tenant GetTenant(int TenantId);
void DeleteTenant(int TenantId);
}
}

View File

@ -6,8 +6,8 @@ namespace Oqtane.Repository
public interface IUserRepository
{
IEnumerable<User> GetUsers();
void AddUser(User User);
void UpdateUser(User User);
User AddUser(User User);
User UpdateUser(User User);
User GetUser(int UserId);
User GetUser(string Username);
void DeleteUser(int UserId);

View File

@ -41,12 +41,13 @@ namespace Oqtane.Repository
}
}
public void AddModule(Module Module)
public Module AddModule(Module Module)
{
try
{
db.Module.Add(Module);
db.SaveChanges();
return Module;
}
catch
{
@ -54,12 +55,13 @@ namespace Oqtane.Repository
}
}
public void UpdateModule(Module Module)
public Module UpdateModule(Module Module)
{
try
{
db.Entry(Module).State = EntityState.Modified;
db.SaveChanges();
return Module;
}
catch
{

View File

@ -40,12 +40,13 @@ namespace Oqtane.Repository
}
}
public void AddPageModule(PageModule PageModule)
public PageModule AddPageModule(PageModule PageModule)
{
try
{
db.PageModule.Add(PageModule);
db.SaveChanges();
return PageModule;
}
catch
{
@ -53,12 +54,13 @@ namespace Oqtane.Repository
}
}
public void UpdatePageModule(PageModule PageModule)
public PageModule UpdatePageModule(PageModule PageModule)
{
try
{
db.Entry(PageModule).State = EntityState.Modified;
db.SaveChanges();
return PageModule;
}
catch
{

View File

@ -38,12 +38,13 @@ namespace Oqtane.Repository
}
}
public void AddPage(Page Page)
public Page AddPage(Page Page)
{
try
{
db.Page.Add(Page);
db.SaveChanges();
return Page;
}
catch
{
@ -51,12 +52,13 @@ namespace Oqtane.Repository
}
}
public void UpdatePage(Page Page)
public Page UpdatePage(Page Page)
{
try
{
db.Entry(Page).State = EntityState.Modified;
db.SaveChanges();
return Page;
}
catch
{

View File

@ -26,12 +26,13 @@ namespace Oqtane.Repository
}
}
public void AddSite(Site site)
public Site AddSite(Site Site)
{
try
{
db.Site.Add(site);
db.Site.Add(Site);
db.SaveChanges();
return Site;
}
catch
{
@ -39,12 +40,13 @@ namespace Oqtane.Repository
}
}
public void UpdateSite(Site site)
public Site UpdateSite(Site Site)
{
try
{
db.Entry(site).State = EntityState.Modified;
db.Entry(Site).State = EntityState.Modified;
db.SaveChanges();
return Site;
}
catch
{

View File

@ -0,0 +1,100 @@
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Linq;
using Oqtane.Models;
namespace Oqtane.Repository
{
public class SiteUserRepository : ISiteUserRepository
{
private TenantDBContext db;
public SiteUserRepository(TenantDBContext context)
{
db = context;
}
public IEnumerable<SiteUser> GetSiteUsers()
{
try
{
return db.SiteUser.ToList();
}
catch
{
throw;
}
}
public IEnumerable<SiteUser> GetSiteUsers(int SiteId, int UserId)
{
try
{
List<SiteUser> siteusers = db.SiteUser.Where(item => item.SiteId == SiteId).ToList();
if (UserId != -1)
{
siteusers = siteusers.Where(item => item.UserId == UserId).ToList();
}
return siteusers;
}
catch
{
throw;
}
}
public SiteUser AddSiteUser(SiteUser SiteUser)
{
try
{
db.SiteUser.Add(SiteUser);
db.SaveChanges();
return SiteUser;
}
catch
{
throw;
}
}
public SiteUser UpdateSiteUser(SiteUser SiteUser)
{
try
{
db.Entry(SiteUser).State = EntityState.Modified;
db.SaveChanges();
return SiteUser;
}
catch
{
throw;
}
}
public SiteUser GetSiteUser(int SiteUserId)
{
try
{
SiteUser SiteUser = db.SiteUser.Find(SiteUserId);
return SiteUser;
}
catch
{
throw;
}
}
public void DeleteSiteUser(int SiteUserId)
{
try
{
SiteUser SiteUser = db.SiteUser.Find(SiteUserId);
db.SiteUser.Remove(SiteUser);
db.SaveChanges();
}
catch
{
throw;
}
}
}
}

View File

@ -11,6 +11,7 @@ namespace Oqtane.Repository
public virtual DbSet<PageModule> PageModule { get; set; }
public virtual DbSet<Module> Module { get; set; }
public virtual DbSet<User> User { get; set; }
public virtual DbSet<SiteUser> SiteUser { get; set; }
public TenantDBContext(ITenantResolver TenantResolver, IHttpContextAccessor accessor) : base(TenantResolver, accessor)
{

View File

@ -36,12 +36,13 @@ namespace Oqtane.Repository
}
}
public void AddTenant(Tenant tenant)
public Tenant AddTenant(Tenant Tenant)
{
try
{
db.Tenant.Add(tenant);
db.Tenant.Add(Tenant);
db.SaveChanges();
return Tenant;
}
catch
{
@ -49,12 +50,13 @@ namespace Oqtane.Repository
}
}
public void UpdateTenant(Tenant tenant)
public Tenant UpdateTenant(Tenant Tenant)
{
try
{
db.Entry(tenant).State = EntityState.Modified;
db.Entry(Tenant).State = EntityState.Modified;
db.SaveChanges();
return Tenant;
}
catch
{
@ -62,11 +64,11 @@ namespace Oqtane.Repository
}
}
public Tenant GetTenant(int tenantId)
public Tenant GetTenant(int TenantId)
{
try
{
Tenant tenant = db.Tenant.Find(tenantId);
Tenant tenant = db.Tenant.Find(TenantId);
return tenant;
}
catch
@ -75,11 +77,11 @@ namespace Oqtane.Repository
}
}
public void DeleteTenant(int tenantId)
public void DeleteTenant(int TenantId)
{
try
{
Tenant tenant = db.Tenant.Find(tenantId);
Tenant tenant = db.Tenant.Find(TenantId);
db.Tenant.Remove(tenant);
db.SaveChanges();
}

View File

@ -26,12 +26,13 @@ namespace Oqtane.Repository
}
}
public void AddUser(User user)
public User AddUser(User user)
{
try
{
db.User.Add(user);
db.SaveChanges();
return user;
}
catch
{
@ -39,12 +40,13 @@ namespace Oqtane.Repository
}
}
public void UpdateUser(User user)
public User UpdateUser(User user)
{
try
{
db.Entry(user).State = EntityState.Modified;
db.SaveChanges();
return user;
}
catch
{

View File

@ -96,6 +96,21 @@ CREATE TABLE [dbo].[User](
)
GO
CREATE TABLE [dbo].[SiteUser](
[SiteUserId] [int] IDENTITY(1,1) NOT NULL,
[SiteId] [int] NOT NULL,
[UserId] [int] NOT NULL,
[IsAuthorized] [bit] NOT NULL,
[CreatedBy] [nvarchar](256) NOT NULL,
[CreatedOn] [datetime] NOT NULL,
[ModifiedBy] [nvarchar](256) NOT NULL,
[ModifiedOn] [datetime] NOT NULL,
CONSTRAINT [PK_SiteUser] PRIMARY KEY CLUSTERED
(
[SiteUserId] ASC
)
)
GO
/*
Create foreign key relationships
@ -125,6 +140,15 @@ REFERENCES [dbo].[Page] ([PageId])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[SiteUser] WITH CHECK ADD CONSTRAINT [FK_SiteUser_Site] FOREIGN KEY([SiteId])
REFERENCES [dbo].[Site] ([SiteId])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[SiteUser] WITH CHECK ADD CONSTRAINT [FK_SiteUser_User] FOREIGN KEY([UserId])
REFERENCES [dbo].[User] ([UserId])
GO
/*
Create seed data

View File

@ -0,0 +1,17 @@
using System;
namespace Oqtane.Models
{
public class SiteUser : IAuditable
{
public int SiteUserId { get; set; }
public int SiteId { get; set; }
public int UserId { get; set; }
public bool IsAuthorized { get; set; }
public string CreatedBy { get; set; }
public DateTime CreatedOn { get; set; }
public string ModifiedBy { get; set; }
public DateTime ModifiedOn { get; set; }
}
}

View File

@ -10,6 +10,8 @@ namespace Oqtane.Models
public string Roles { get; set; }
public bool IsSuperUser { get; set; }
[NotMapped]
public int SiteId { get; set; }
[NotMapped]
public string Password { get; set; }
[NotMapped]