private static async Task AddBook(Resgate.Client client) { string title, author; lock (guard) { Console.WriteLine("Enter book title:"); title = Console.ReadLine(); Console.WriteLine("Enter book author:"); author = Console.ReadLine(); } await client.Call("library.books", "new", new Book { title = title, author = author }); }
static async Task Main(string[] args) { var settings = new Resgate.Settings(() => new Uri("ws://localhost:8080")); settings.Failed += (o, ev) => { Console.WriteLine("Failed to connect due to " + ev.Reason.ToString()); waitForInitial.Set(); }; settings.Error += (sender, eventArgs) => { Console.WriteLine("Failed to subscribe " + eventArgs.Rid + " because of " + eventArgs.Error.Message); }; using (var client = new Resgate.Client(settings)) { using (var token = await client.SubscribeCollection <Book>("library.books", Initial, Added, Changed, Removed)) { waitForInitial.WaitOne(); for (;;) { DisplayInfo(); var key = Console.ReadKey(true); switch (key.KeyChar) { case 'a': case 'A': await AddBook(client); break; case 'q': case 'Q': return; } } } } }