Can now somewhat reliably join a party

This commit is contained in:
watsonb8
2019-07-06 15:52:28 -04:00
parent 0d64c0732e
commit 2a3290defc
15 changed files with 140 additions and 125 deletions

View File

@ -2,7 +2,7 @@ using System;
using System.Reflection;
using System.Linq;
using System.Collections.ObjectModel;
using Aurora.Models;
using Aurora.Proto;
namespace Aurora.Executors
{
@ -38,9 +38,7 @@ namespace Aurora.Executors
return executor;
}
public abstract void Initialize();
public abstract void Run();
public abstract void Connect(string hostname);
public abstract void Close();

View File

@ -1,31 +1,48 @@
using System;
using System.Collections.ObjectModel;
using Grpc.Core;
using Aurora.Proto;
using Aurora.Models;
using Aurora.Executors;
using Aurora.Services;
namespace Aurora.Executors
{
public class ClientExecutor : BaseExecutor
{
private Channel _channel;
private RemotePartyService.RemotePartyServiceClient _remotePartyClient;
private RemotePlaybackService.RemotePlaybackServiceClient _remotePlaybackClient;
private ObservableCollection<PartyMember> _partyMembers;
public ClientExecutor()
{
_partyMembers = new ObservableCollection<PartyMember>();
}
#region Properties
public override ObservableCollection<PartyMember> PartyMembers
{
get { return null; }
get { return _partyMembers; }
}
#endregion Properties
public override void AddToQueue()
public override void Connect(string hostname)
{
throw new NotImplementedException();
_channel = new Channel(string.Format("{0}:{1}", hostname, SettingsService.Instance.DefaultPort), ChannelCredentials.Insecure);
_remotePartyClient = new RemotePartyService.RemotePartyServiceClient(_channel);
_remotePlaybackClient = new RemotePlaybackService.RemotePlaybackServiceClient(_channel);
JoinParty();
}
public override void Close()
public override async void Close()
{
await _channel.ShutdownAsync();
}
public override void AddToQueue()
{
throw new NotImplementedException();
}
@ -40,19 +57,33 @@ namespace Aurora.Executors
throw new NotImplementedException();
}
public override void Initialize()
{
throw new NotImplementedException();
}
public override void RemoveFromQueue()
{
throw new NotImplementedException();
}
public override void Run()
private async void JoinParty()
{
throw new NotImplementedException();
await _remotePartyClient.JoinPartyAsync(new JoinPartyRequest
{
UserName = SettingsService.Instance.Username,
});
MembersResponse resposne = _remotePartyClient.GetPartyMembers(new Empty());
//Add members
foreach (PartyMember member in resposne.Members)
{
_partyMembers.Add(member);
}
//Remove out of date members
foreach (PartyMember member in _partyMembers)
{
if (!resposne.Members.Contains(member))
{
_partyMembers.Remove(member);
}
}
}
}
}

View File

@ -19,11 +19,17 @@ namespace Aurora.Executors
_remotePlaybackImpl = new RemotePlaybackServiceImpl();
}
public override void Initialize()
public override void Connect(string hostname)
{
//Initialize gRPC server
ServerService.Instance.Initialize(hostname);
//Register grpc RemoteService with singleton server service
ServerService.Instance.RegisterService(RemotePartyService.BindService(_remotePartyServiceImpl));
ServerService.Instance.RegisterService(RemotePlaybackService.BindService(_remotePlaybackImpl));
//start gRPC server
ServerService.Instance.Start();
}
#region Properties
@ -58,10 +64,5 @@ namespace Aurora.Executors
{
throw new NotImplementedException();
}
public override void Run()
{
throw new NotImplementedException();
}
}
}