public AgentConnection(IPropertyChangedTransmitter propertyTransmitter, ISettings settings) : base(settings)
        {
            _propertyTransmitter = propertyTransmitter;

            _propertyTransmitter.OutgoingChanges.Subscribe(async cm =>
            {
                await ConnectedTask;
                await Proxy.Invoke("SendPropertyChange", cm);
            });

            var joined = Proxy.Observe("clientJoined").Select(_ => true);
            var left   = Proxy.Observe("clientLeft").Select(_ => false);

            joined.Merge(left).Subscribe(_clientInMeeting);

            Proxy.Observe("meetingStatusUpdated").Select(p =>
            {
                var result = JsonConvert.DeserializeObject <List <MeetingStatus> >(p[0].ToString());
                return(result);
            }).Subscribe(_meetingStatus);

            var obs = Observable.FromAsync(async() =>
            {
                await ConnectedTask;
                var meetings = await Proxy.Invoke <IEnumerable <Meeting> >("agentLogin", "authTokenString");
                return(meetings);
            });

            Meetings = obs;
        }
        public AgentConnection(IPropertyChangedTransmitter propertyTransmitter, ISettings settings) : base(settings) 
        {
            _propertyTransmitter = propertyTransmitter;

            _propertyTransmitter.OutgoingChanges.Subscribe(async cm =>
            {
                await ConnectedTask;
                await Proxy.Invoke("SendPropertyChange", cm);
            });

            var joined = Proxy.Observe("clientJoined").Select(_ => true);
            var left = Proxy.Observe("clientLeft").Select(_ => false);

            joined.Merge(left).Subscribe(_clientInMeeting);

            Proxy.Observe("meetingStatusUpdated").Select(p =>
                                                         {
                                                             var result = JsonConvert.DeserializeObject<List<MeetingStatus>>(p[0].ToString());
                                                             return result;
                                                         }).Subscribe(_meetingStatus);

            var obs = Observable.FromAsync(async () =>
                            {
                                await ConnectedTask;
                                var meetings = await Proxy.Invoke<IEnumerable<Meeting>>("agentLogin", "authTokenString");
                                return meetings;
                            });

            Meetings = obs;

        }
 public ClientMainService(IClientConnection connection,
                          ISharedDataService data,
                          ISettings settings,
                          IPropertyChangedTransmitter transmitter,
                          IPropertyChangedReceiver receiver,
                          INavigationService navigation) 
 {
     _connection = connection;
     _data = data;
     _settings = settings;
     _transmitter = transmitter;
     _receiver = receiver;
     _navigation = navigation;
 }
 public ClientMainService(IClientConnection connection,
                          ISharedDataService data,
                          ISettings settings,
                          IPropertyChangedTransmitter transmitter,
                          IPropertyChangedReceiver receiver,
                          INavigationService navigation)
 {
     _connection  = connection;
     _data        = data;
     _settings    = settings;
     _transmitter = transmitter;
     _receiver    = receiver;
     _navigation  = navigation;
 }