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()); 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) public async Task DeleteAliasAsync(int AliasId)
{ {

View File

@ -10,9 +10,9 @@ namespace Oqtane.Services
Task<Alias> GetAliasAsync(int AliasId); 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); Task DeleteAliasAsync(int AliasId);
} }

View File

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

View File

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

View File

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

View File

@ -10,9 +10,9 @@ namespace Oqtane.Services
Task<Site> GetSiteAsync(int SiteId); 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); Task DeleteSiteAsync(int SiteId);
} }

View File

@ -12,18 +12,18 @@ namespace Oqtane.Services
Task<User> GetUserAsync(string Username); 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 DeleteUserAsync(int UserId);
Task<User> GetCurrentUserAsync(); Task<User> GetCurrentUserAsync();
Task<User> LoginUserAsync(User user); Task<User> LoginUserAsync(User User);
Task LogoutUserAsync(); 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()); 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) public async Task DeleteModuleAsync(int ModuleId)

View File

@ -31,14 +31,14 @@ namespace Oqtane.Services
return await http.GetJsonAsync<List<PageModule>>(apiurl); 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) public async Task DeletePageModuleAsync(int PageModuleId)

View File

@ -37,14 +37,14 @@ namespace Oqtane.Services
return await http.GetJsonAsync<Page>(apiurl + "/" + PageId.ToString()); 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) public async Task DeletePageAsync(int PageId)
{ {

View File

@ -37,14 +37,14 @@ namespace Oqtane.Services
return await http.GetJsonAsync<Site>(apiurl + "/" + SiteId.ToString()); 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) public async Task DeleteSiteAsync(int SiteId)
{ {

View File

@ -43,14 +43,14 @@ namespace Oqtane.Services
return await http.GetJsonAsync<User>(apiurl + "/name/" + Username); 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) public async Task DeleteUserAsync(int UserId)
{ {
@ -62,9 +62,9 @@ namespace Oqtane.Services
return await http.GetJsonAsync<User>(apiurl + "/current"); 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() 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 // 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; bool isAllowed = false;
if (user != null) if (User != null)
{ {
//super user always has full access //super user always has full access
isAllowed = user.IsSuperUser; isAllowed = User.IsSuperUser;
} }
if (!isAllowed) 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) if (allowed.HasValue)
{ {
isAllowed = allowed.Value; isAllowed = allowed.Value;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -31,18 +31,24 @@ namespace Oqtane.Server.Modules.HtmlText.Controllers
// POST api/<controller> // POST api/<controller>
[HttpPost] [HttpPost]
public void Post([FromBody] HtmlTextInfo HtmlText) public HtmlTextInfo Post([FromBody] HtmlTextInfo HtmlText)
{ {
if (ModelState.IsValid) if (ModelState.IsValid)
htmltext.AddHtmlText(HtmlText); {
HtmlText = htmltext.AddHtmlText(HtmlText);
}
return HtmlText;
} }
// PUT api/<controller>/5 // PUT api/<controller>/5
[HttpPut("{id}")] [HttpPut("{id}")]
public void Put(int id, [FromBody] HtmlTextInfo HtmlText) public HtmlTextInfo Put(int id, [FromBody] HtmlTextInfo HtmlText)
{ {
if (ModelState.IsValid) if (ModelState.IsValid)
htmltext.UpdateHtmlText(HtmlText); {
HtmlText = htmltext.UpdateHtmlText(HtmlText);
}
return HtmlText;
} }
// DELETE api/<controller>/5 // 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 try
{ {
db.HtmlText.Add(HtmlText); db.HtmlText.Add(HtmlText);
db.SaveChanges(); db.SaveChanges();
return HtmlText;
} }
catch catch
{ {
@ -40,12 +41,13 @@ namespace Oqtane.Server.Modules.HtmlText.Repository
} }
} }
public void UpdateHtmlText(HtmlTextInfo HtmlText) public HtmlTextInfo UpdateHtmlText(HtmlTextInfo HtmlText)
{ {
try try
{ {
db.Entry(HtmlText).State = EntityState.Modified; db.Entry(HtmlText).State = EntityState.Modified;
db.SaveChanges(); db.SaveChanges();
return HtmlText;
} }
catch catch
{ {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -6,9 +6,9 @@ namespace Oqtane.Repository
public interface ISiteRepository public interface ISiteRepository
{ {
IEnumerable<Site> GetSites(); IEnumerable<Site> GetSites();
void AddSite(Site site); Site AddSite(Site Site);
void UpdateSite(Site site); Site UpdateSite(Site Site);
Site GetSite(int siteId); Site GetSite(int SiteId);
void DeleteSite(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 public interface ITenantRepository
{ {
IEnumerable<Tenant> GetTenants(); IEnumerable<Tenant> GetTenants();
void AddTenant(Tenant tenant); Tenant AddTenant(Tenant Tenant);
void UpdateTenant(Tenant tenant); Tenant UpdateTenant(Tenant Tenant);
Tenant GetTenant(int tenantId); Tenant GetTenant(int TenantId);
void DeleteTenant(int tenantId); void DeleteTenant(int TenantId);
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

@ -26,12 +26,13 @@ namespace Oqtane.Repository
} }
} }
public void AddSite(Site site) public Site AddSite(Site Site)
{ {
try try
{ {
db.Site.Add(site); db.Site.Add(Site);
db.SaveChanges(); db.SaveChanges();
return Site;
} }
catch catch
{ {
@ -39,12 +40,13 @@ namespace Oqtane.Repository
} }
} }
public void UpdateSite(Site site) public Site UpdateSite(Site Site)
{ {
try try
{ {
db.Entry(site).State = EntityState.Modified; db.Entry(Site).State = EntityState.Modified;
db.SaveChanges(); db.SaveChanges();
return Site;
} }
catch 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<PageModule> PageModule { get; set; }
public virtual DbSet<Module> Module { get; set; } public virtual DbSet<Module> Module { get; set; }
public virtual DbSet<User> User { 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) 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 try
{ {
db.Tenant.Add(tenant); db.Tenant.Add(Tenant);
db.SaveChanges(); db.SaveChanges();
return Tenant;
} }
catch catch
{ {
@ -49,12 +50,13 @@ namespace Oqtane.Repository
} }
} }
public void UpdateTenant(Tenant tenant) public Tenant UpdateTenant(Tenant Tenant)
{ {
try try
{ {
db.Entry(tenant).State = EntityState.Modified; db.Entry(Tenant).State = EntityState.Modified;
db.SaveChanges(); db.SaveChanges();
return Tenant;
} }
catch catch
{ {
@ -62,11 +64,11 @@ namespace Oqtane.Repository
} }
} }
public Tenant GetTenant(int tenantId) public Tenant GetTenant(int TenantId)
{ {
try try
{ {
Tenant tenant = db.Tenant.Find(tenantId); Tenant tenant = db.Tenant.Find(TenantId);
return tenant; return tenant;
} }
catch catch
@ -75,11 +77,11 @@ namespace Oqtane.Repository
} }
} }
public void DeleteTenant(int tenantId) public void DeleteTenant(int TenantId)
{ {
try try
{ {
Tenant tenant = db.Tenant.Find(tenantId); Tenant tenant = db.Tenant.Find(TenantId);
db.Tenant.Remove(tenant); db.Tenant.Remove(tenant);
db.SaveChanges(); db.SaveChanges();
} }

View File

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

View File

@ -96,6 +96,21 @@ CREATE TABLE [dbo].[User](
) )
GO 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 Create foreign key relationships
@ -125,6 +140,15 @@ REFERENCES [dbo].[Page] ([PageId])
ON DELETE CASCADE ON DELETE CASCADE
GO 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 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 string Roles { get; set; }
public bool IsSuperUser { get; set; } public bool IsSuperUser { get; set; }
[NotMapped]
public int SiteId { get; set; }
[NotMapped] [NotMapped]
public string Password { get; set; } public string Password { get; set; }
[NotMapped] [NotMapped]