diff options
Diffstat (limited to 'MediaBrowser.Api/ConnectService.cs')
| -rw-r--r-- | MediaBrowser.Api/ConnectService.cs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/MediaBrowser.Api/ConnectService.cs b/MediaBrowser.Api/ConnectService.cs index f84b74203..bdd2eeaad 100644 --- a/MediaBrowser.Api/ConnectService.cs +++ b/MediaBrowser.Api/ConnectService.cs @@ -1,8 +1,10 @@ -using MediaBrowser.Common.Extensions; +using System; +using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Connect; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Net; using MediaBrowser.Model.Connect; +using MediaBrowser.Model.Dto; using ServiceStack; using System.Collections.Generic; using System.Linq; @@ -87,6 +89,14 @@ namespace MediaBrowser.Api public string Id { get; set; } } + [Route("/Connect/Supporters", "POST")] + [Authenticated(Roles = "Admin")] + public class AddConnectSupporter : IReturnVoid + { + [ApiMember(Name = "Id", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] + public string Id { get; set; } + } + public class ConnectService : BaseApiService { private readonly IConnectManager _connectManager; @@ -101,6 +111,14 @@ namespace MediaBrowser.Api public async Task<object> Get(GetConnectSupporterSummary request) { var result = await _connectManager.GetConnectSupporterSummary().ConfigureAwait(false); + var existingConnectUserIds = result.Users.Select(i => i.Id).ToList(); + + result.EligibleUsers = _userManager.Users + .Where(i => !string.IsNullOrWhiteSpace(i.ConnectUserId)) + .Where(i => !existingConnectUserIds.Contains(i.ConnectUserId, StringComparer.OrdinalIgnoreCase)) + .OrderBy(i => i.Name) + .Select(i => _userManager.GetUserDto(i)) + .ToList(); return ToOptimizedResult(result); } @@ -112,6 +130,13 @@ namespace MediaBrowser.Api Task.WaitAll(task); } + public void Post(AddConnectSupporter request) + { + var task = _connectManager.AddConnectSupporter(request.Id); + + Task.WaitAll(task); + } + public object Post(CreateConnectLink request) { return _connectManager.LinkUser(request.Id, request.ConnectUsername); |
