internal void SetSprinklerData(SprinklerData data) { // replace current Program Data Data.Programs = new List <SprinklerProgram>(data.Programs); // save to disk Data.Save(); }
//public IList<Zone> ZoneList //{ // get; private set; //} public SprinklerProgramController(SprinklerValveController controller) { Utils.LogLine("------------------------"); Utils.LogLine("Sprinkler program started"); Controller = controller; Data = SprinklerData.Load(); if (Data == null) { // first time set the default Data = new SprinklerData(); Data.SetDefaults(); } //// TODO remove test!!!! //if(Data.Programs.Count == 1) // Data.AddProgram("Program2"); // load programs RunningZone = -1; ZoneStopTime = DateTime.MinValue; isPaused = false; ZonePauseStopTime = DateTime.MaxValue; // start controller timer IAsyncAction asyncAction2 = Windows.System.Threading.ThreadPool.RunAsync( (workItem) => { ControllerThread(); }); //if (Utils.LocalFileExists(ZoneListFileName)) //{ // string json = Utils.ReadStringFromLocalFile(ZoneListFileName); // if (json != null && json.Length > 0) // { // ZoneList = Utils.DeserializeJsonZoneList(json); // } //} //if (ZoneList == null || ZoneList.Count == 0) //{ // // hard code zone list /names if the data file does not exist // ZoneList = new List<Zone>(); // for (int i = 1; i < 16; i++) // { // ZoneList.Add(new Zone() { Id = i, IsEnabled = true, Name = String.Format("Zone {0}", i) }); // } //} }
private string UpdateProgramData(string json) { try { SprinklerData data = Utils.DeserializeJsonSprinklerData(json); programController.SetSprinklerData(data); return("true"); } catch (Exception ex) { return(MakeJsonErrorMsg("Error updating zone list", ex)); // swallow throw; } }
internal static SprinklerData DeserializeJsonSprinklerData(string json) { try { byte[] arrayOfMyString = Encoding.UTF8.GetBytes(json); MemoryStream stream = new MemoryStream(arrayOfMyString); DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(SprinklerData)); SprinklerData list = (SprinklerData)ds.ReadObject(stream); return(list); } catch (Exception ex) { throw; } }
internal static string SerializeJSonSprinklerData(SprinklerData sprinklerData) { try { MemoryStream stream = new MemoryStream(); DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(SprinklerData)); DataContractJsonSerializerSettings s = new DataContractJsonSerializerSettings(); ds.WriteObject(stream, sprinklerData); string jsonString = Encoding.UTF8.GetString(stream.ToArray()); //stream.Close(); return(jsonString); } catch (Exception ex) { return(ex.ToString()); //throw; } }