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) });
            //    }
            //}
        }
Exemple #3
0
        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;
            }
        }
Exemple #4
0
        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;
            }
        }
Exemple #5
0
 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;
     }
 }