using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using MQTTnet.Server; using Newtonsoft.Json; namespace MQTTnet.TestApp.UniversalWindows { public sealed class JsonServerStorage : IMqttServerStorage { readonly string _filename = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Retained.json"); public Task SaveRetainedMessagesAsync(IList messages) { var json = JsonConvert.SerializeObject(messages); File.WriteAllText(_filename, json); return Task.CompletedTask; } public async Task> LoadRetainedMessagesAsync() { await Task.CompletedTask; if (!File.Exists(_filename)) { return new List(); } try { var json = File.ReadAllText(_filename); return JsonConvert.DeserializeObject>(json); } catch { return new List(); } } public void Clear() { if (File.Exists(_filename)) { File.Delete(_filename); } } } }