private static TimeProfile LoadProfile() { Log.Info("Loading profile"); TimeProfile result; if (File.Exists(_savedProfilePath)) { var savedProfileData = File.ReadAllText(_savedProfilePath, Encoding.UTF8); result = TimeProfileSerializer.Deserialize(savedProfileData); } else { result = DefaultTimeProfile.Create(); } Log.Info("Profile loaded with {0} nodes", result.Nodes.Count); foreach (var node in result.Nodes) { Log.Info($"Node {node}"); } return(result); }
public static void SaveProfile(TimeProfile profile) { var profileString = TimeProfileSerializer.Serialize(profile); var directory = System.IO.Path.GetDirectoryName(_savedProfilePath); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } File.WriteAllText(_savedProfilePath, profileString, Encoding.UTF8); Log.Info("Profile saved"); }
public void TestItNow() { var originalProfile = new TimeProfile { Name = "Test time profile" }; var originalNode = new TimeNode(TimeSpan.FromHours(7)); originalNode.Properties.Add(new NodeProperty(NodeProperty.Brightness, 20)); originalNode.Properties.Add(new NodeProperty(NodeProperty.ColorTemperature, 3300)); originalProfile.AddNode(originalNode); var str = TimeProfileSerializer.Serialize(originalProfile); Assert.IsNotNull(str); var deserializedProfile = TimeProfileSerializer.Deserialize(str) as TimeProfile; Assert.IsNotNull(deserializedProfile); Assert.AreEqual(originalProfile.Name, deserializedProfile.Name); Assert.AreEqual(originalProfile.Nodes.Count, deserializedProfile.Nodes.Count); var deserializedNode = deserializedProfile.Nodes[0]; Assert.AreEqual(originalNode.TimeOfDay, deserializedNode.TimeOfDay); var originalBrightnessProperty = originalNode.Properties.First(_ => _.Name == NodeProperty.Brightness); var deserializedBrightnessProperty = deserializedNode.Properties.First(_ => _.Name == NodeProperty.Brightness); Assert.AreEqual(originalBrightnessProperty.Name, deserializedBrightnessProperty.Name); Assert.AreEqual(originalBrightnessProperty.Value, deserializedBrightnessProperty.Value); var originalColorTemperatureProperty = originalNode.Properties.First(_ => _.Name == NodeProperty.Brightness); var deserializedColorTemperatureProperty = deserializedNode.Properties.First(_ => _.Name == NodeProperty.Brightness); Assert.AreEqual(originalColorTemperatureProperty.Name, deserializedColorTemperatureProperty.Name); Assert.AreEqual(originalColorTemperatureProperty.Value, deserializedColorTemperatureProperty.Value); }