public ApiService(string serverAddr, FeedReaderClient client)
        {
            _serverAddr = serverAddr;

            var httpHandler = new HttpClientHandler();
            var grpcHandler = new GrpcWebHandler(GrpcWebMode.GrpcWebText, httpHandler);

            _apiClient = new FeedReaderServerApiClient(GrpcChannel.ForAddress(_serverAddr, new GrpcChannelOptions {
                HttpHandler = grpcHandler
            }));
            _client = client;
        }
        public async Task <User> LoginAsync(string token)
        {
            var httpHandler = new CustomizedHttpClientHandler(token);
            var grpcHandler = new GrpcWebHandler(GrpcWebMode.GrpcWebText, httpHandler);

            _apiClient = new FeedReaderServerApiClient(GrpcChannel.ForAddress(_serverAddr, new GrpcChannelOptions {
                HttpHandler = grpcHandler
            }));
            var user = await _apiClient.LoginAsync(new Protos.LoginRequest());

            // Switch the token.
            httpHandler = new CustomizedHttpClientHandler(user.Token);
            grpcHandler = new GrpcWebHandler(GrpcWebMode.GrpcWebText, httpHandler);
            _apiClient  = new FeedReaderServerApiClient(GrpcChannel.ForAddress(_serverAddr, new GrpcChannelOptions {
                HttpHandler = grpcHandler
            }));
            _client.SetApiClient(_apiClient);
            return(new User
            {
                Uuid = user.Uuid,
                Token = user.Token,
                Feeds = user.Feeds.Select(f => GetFeed(f)).ToList()
            });
        }
 public void SetApiClient(FeedReaderServerApiClient api)
 {
     _api = api;
 }