using Oqtane.Models; using System.Threading.Tasks; using System.Net.Http; using System.Collections.Generic; using Oqtane.Documentation; using Oqtane.Shared; using System.Linq; namespace Oqtane.Services { /// /// Service to manage s on a /// public interface ISiteGroupMemberService { /// /// Get all s /// /// Task> GetSiteGroupMembersAsync(int siteId, int siteGroupId); /// /// Get one specific /// /// ID-reference of a /// Task GetSiteGroupMemberAsync(int siteGroupMemberId); /// /// Get one specific /// /// ID-reference of a /// ID-reference of a /// Task GetSiteGroupMemberAsync(int siteId, int siteGroupId); /// /// Add / save a new to the database. /// /// /// Task AddSiteGroupMemberAsync(SiteGroupMember siteGroupMember); /// /// Update a in the database. /// /// /// Task UpdateSiteGroupMemberAsync(SiteGroupMember siteGroupMember); /// /// Delete a in the database. /// /// ID-reference of a /// Task DeleteSiteGroupMemberAsync(int siteGroupMemberId); } [PrivateApi("Don't show in the documentation, as everything should use the Interface")] public class SiteGroupMemberService : ServiceBase, ISiteGroupMemberService { public SiteGroupMemberService(HttpClient http, SiteState siteState) : base(http, siteState) { } private string Apiurl => CreateApiUrl("SiteGroupMember"); public async Task> GetSiteGroupMembersAsync(int siteId, int siteGroupId) { return await GetJsonAsync>($"{Apiurl}?siteid={siteId}&groupid={siteGroupId}", Enumerable.Empty().ToList()); } public async Task GetSiteGroupMemberAsync(int siteGroupMemberId) { return await GetJsonAsync($"{Apiurl}/{siteGroupMemberId}"); } public async Task GetSiteGroupMemberAsync(int siteId, int siteGroupId) { var siteGroupMembers = await GetSiteGroupMembersAsync(siteId, siteGroupId); if (siteGroupMembers != null && siteGroupMembers.Count > 0) { return siteGroupMembers[0]; } else { return null; } } public async Task AddSiteGroupMemberAsync(SiteGroupMember siteGroupMember) { return await PostJsonAsync(Apiurl, siteGroupMember); } public async Task UpdateSiteGroupMemberAsync(SiteGroupMember siteGroupMember) { return await PutJsonAsync($"{Apiurl}/{siteGroupMember.SiteGroupId}", siteGroupMember); } public async Task DeleteSiteGroupMemberAsync(int siteGroupMemberId) { await DeleteAsync($"{Apiurl}/{siteGroupMemberId}"); } } }