private async Task HandleMessageAsync(InkAction value) { try { switch (value.InkActionType) { case InkAction.InkActionTypes.Reset: await InkHostServer.ActiveDevice.Reset(); break; case InkAction.InkActionTypes.Init: await InkHostServer.ActiveDevice.Init(); break; case InkAction.InkActionTypes.Draw: var canvas = EInkCanvas.ImportJson(value.CanvasJson); Console.WriteLine($"[{this.Id}] Drawing {canvas.AvailableInkColors.Length} colors to {canvas.Width}x{canvas.Height} canvas."); Console.WriteLine($"... {canvas.Width}x{canvas.Height}"); Console.WriteLine($"... Colors: {string.Join(", ", canvas.AvailableInkColors.Select(c => c.Name))}"); await InkHostServer.ActiveDevice.Draw(canvas); break; case InkAction.InkActionTypes.Clear: await InkHostServer.ActiveDevice.Clear(); break; } Console.WriteLine($"[{this.Id}] Action complete."); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }