CSS separation, multi-tenancy fixes

This commit is contained in:
Shaun Walker
2019-10-12 16:32:47 -04:00
parent 7f69f76263
commit c029e70783
82 changed files with 957 additions and 811 deletions

View File

@ -7,13 +7,18 @@ namespace Oqtane.Services
public interface ISiteService
{
Task<List<Site>> GetSitesAsync();
Task<List<Site>> GetSitesAsync(Alias Alias);
Task<Site> GetSiteAsync(int SiteId);
Task<Site> GetSiteAsync(int SiteId, Alias Alias);
Task<Site> AddSiteAsync(Site Site);
Task<Site> AddSiteAsync(Site Site, Alias Alias);
Task<Site> UpdateSiteAsync(Site Site);
Task<Site> UpdateSiteAsync(Site Site, Alias Alias);
Task DeleteSiteAsync(int SiteId);
Task DeleteSiteAsync(int SiteId, Alias Alias);
}
}

View File

@ -14,6 +14,8 @@ namespace Oqtane.Services
Task<User> AddUserAsync(User User);
Task<User> AddUserAsync(User User, Alias alias);
Task<User> UpdateUserAsync(User User);
Task DeleteUserAsync(int UserId);

View File

@ -10,11 +10,13 @@ namespace Oqtane.Services
public static string CreateApiUrl(Alias alias, string absoluteUri, string serviceName)
{
string apiurl = "";
Uri uri = new Uri(absoluteUri);
string apiurl;
if (alias != null)
{
// build a url which passes the alias that may include a subfolder for multi-tenancy
apiurl = alias.Url + "/";
apiurl = uri.Scheme + "://" + alias.Name + "/";
if (alias.Path == "")
{
apiurl += "~/";
@ -23,7 +25,6 @@ namespace Oqtane.Services
else
{
// build a url which ignores any subfolder for multi-tenancy
Uri uri = new Uri(absoluteUri);
apiurl = uri.Scheme + "://" + uri.Authority + "/~/";
}
apiurl += "api/" + serviceName;

View File

@ -31,25 +31,47 @@ namespace Oqtane.Services
List<Site> sites = await http.GetJsonAsync<List<Site>>(apiurl);
return sites.OrderBy(item => item.Name).ToList();
}
public async Task<List<Site>> GetSitesAsync(Alias Alias)
{
List<Site> sites = await http.GetJsonAsync<List<Site>>(CreateApiUrl(Alias, NavigationManager.Uri, "Site"));
return sites.OrderBy(item => item.Name).ToList();
}
public async Task<Site> GetSiteAsync(int SiteId)
{
return await http.GetJsonAsync<Site>(apiurl + "/" + SiteId.ToString());
}
public async Task<Site> GetSiteAsync(int SiteId, Alias Alias)
{
return await http.GetJsonAsync<Site>(CreateApiUrl(Alias, NavigationManager.Uri, "Site") + "/" + SiteId.ToString());
}
public async Task<Site> AddSiteAsync(Site Site)
{
return await http.PostJsonAsync<Site>(apiurl, Site);
}
public async Task<Site> AddSiteAsync(Site Site, Alias Alias)
{
return await http.PostJsonAsync<Site>(CreateApiUrl(Alias, NavigationManager.Uri, "Site"), Site);
}
public async Task<Site> UpdateSiteAsync(Site Site)
{
return await http.PutJsonAsync<Site>(apiurl + "/" + Site.SiteId.ToString(), Site);
}
public async Task<Site> UpdateSiteAsync(Site Site, Alias Alias)
{
return await http.PutJsonAsync<Site>(CreateApiUrl(Alias, NavigationManager.Uri, "Site") + "/" + Site.SiteId.ToString(), Site);
}
public async Task DeleteSiteAsync(int SiteId)
{
await http.DeleteAsync(apiurl + "/" + SiteId.ToString());
}
public async Task DeleteSiteAsync(int SiteId, Alias Alias)
{
await http.DeleteAsync(CreateApiUrl(Alias, NavigationManager.Uri, "Site") + "/" + SiteId.ToString());
}
}
}

View File

@ -55,6 +55,18 @@ namespace Oqtane.Services
}
}
public async Task<User> AddUserAsync(User User, Alias Alias)
{
try
{
return await http.PostJsonAsync<User>(CreateApiUrl(Alias, NavigationManager.Uri, "User"), User);
}
catch
{
return null;
}
}
public async Task<User> UpdateUserAsync(User User)
{
return await http.PutJsonAsync<User>(apiurl + "/" + User.UserId.ToString(), User);