Exemplo n.º 1
0
        public void setTriggeredState(bool newTriggeredState)
        {
            if (Activated)
            {
                if (Triggered != newTriggeredState)
                {
                    //Log Raw data to database
                    ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory();
                    using (ZoneGuardConfigContext context = factory.CreateDbContext())
                    {
                        SensorStateLogDAL stateLog = new SensorStateLogDAL();
                        stateLog.SensorName = Id;
                        stateLog.Triggered  = (newTriggeredState ? 1 : 0);
                        stateLog.Timestamp  = DateTime.UtcNow;

                        context.SensorStateLog.Add(stateLog);
                        context.SaveChanges();
                    }
                }

                Triggered = newTriggeredState;


                //OnTriggeredChanged(new SensorTriggeredEventArgs(Id, Triggered));
                RaiseTriggeredChanged(new SensorTriggeredEventArgs(Id, Triggered));
            }
        }
Exemplo n.º 2
0
        private void InitializeConfigData_NA(ZoneGuardConfigContext context)
        {
            SensorDAL thing = null;

            if (!context.Sensor.Any())
            {
                List <SensorDAL> sensors = new List <SensorDAL>();

                String topicOffset = "test/";

                SensorParameterDAL[] thingParameters;


                thing = new SensorDAL {
                    Name = "OfficeWindow1", Description = "Window in Office", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow
                };
                sensors.Add(thing);
                thingParameters = new SensorParameterDAL[]
                {
                    new SensorParameterDAL {
                        Name = "topic", Value = "test/officewindows1/state", Timestamp = DateTime.UtcNow
                    }
                    //new ConfigThingParameter{Name="Action 1", ThingType=ThingType.Action, Timestamp=DateTime.UtcNow}
                };
                AddThing(context, thing, thingParameters);

                /* ***********
                 *
                 * Sensor 2
                 *
                 * ************/

                thing = new SensorDAL {
                    Name = "LivingroomWindow1", Description = "First Window in Livingroom", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow
                };
                sensors.Add(thing);
                thingParameters = new SensorParameterDAL[]
                {
                    new SensorParameterDAL {
                        Name = "topic", Value = topicOffset + "livingroomwindows1/state", Timestamp = DateTime.UtcNow
                    },
                    new SensorParameterDAL {
                        Name = "a_value", Value = "Some value", Timestamp = DateTime.UtcNow
                    }

                    //new ConfigThingParameter{Name="Action 1", ThingType=ThingType.Action, Timestamp=DateTime.UtcNow}
                };
                AddThing(context, thing, thingParameters);



                thing = new SensorDAL {
                    Name = "Livingroom2", Description = "Second Window in Livingroom", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow
                };
                sensors.Add(thing);
                thingParameters = new SensorParameterDAL[]
                {
                    new SensorParameterDAL {
                        Name = "topic", Value = topicOffset + "livingroomwindows2/state", Timestamp = DateTime.UtcNow
                    }
                    //new ConfigThingParameter{Name="Action 1", ThingType=ThingType.Action, Timestamp=DateTime.UtcNow}
                };
                AddThing(context, thing, thingParameters);


                thing = new SensorDAL {
                    Name = "Livingroom3", Description = "Third Window in Livingroom", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow
                };
                sensors.Add(thing);
                thingParameters = new SensorParameterDAL[]
                {
                    new SensorParameterDAL {
                        Name = "topic", Value = topicOffset + "livingroomwindows3/state", Timestamp = DateTime.UtcNow
                    }
                    //new ConfigThingParameter{Name="Action 1", ThingType=ThingType.Action, Timestamp=DateTime.UtcNow}
                };
                AddThing(context, thing, thingParameters);



                AlarmZoneDAL alarmZone = null;
                alarmZone = new AlarmZoneDAL {
                    Name = "Perimeter", Description = "", Enabled = 1, Timestamp = DateTime.UtcNow
                };
                List <AlarmZoneThingDAL> alarmZoneSensors = new List <AlarmZoneThingDAL>();

                foreach (SensorDAL sensor in sensors)
                {
                    alarmZoneSensors.Add(new AlarmZoneThingDAL {
                        Enabled = 1, Thing = sensor, Timestamp = DateTime.UtcNow
                    });
                }
                ;
                AddAlarmZone(context, alarmZone, alarmZoneSensors.ToArray());
            }



            SensorStateLogDAL ssl = null;


            thing = context.Thing.Where(s => s.Id == 2).First <SensorDAL>();

            ssl = new SensorStateLogDAL {
                Triggered = 1, Sensor = thing, CreatedTimestamp = DateTime.UtcNow.AddHours(-1)
            };
            AddSensorStateLog(context, ssl);

            ssl = new SensorStateLogDAL {
                Triggered = 0, Sensor = thing, CreatedTimestamp = DateTime.UtcNow.AddHours(-1).AddMinutes(1)
            };
            AddSensorStateLog(context, ssl);

            return;   // DB has been seeded

            //}

            /*
             *
             * DETTE VIRKER
             * var things = new ConfigThing[]
             * {
             * new ConfigThing{Name="Sensor 1", ThingType=ThingType.Sensor, Timestamp=DateTime.UtcNow},
             * new ConfigThing{Name="Sensor 2", ThingType=ThingType.Sensor, Timestamp=DateTime.UtcNow},
             * new ConfigThing{Name="Action 1", ThingType=ThingType.Action, Timestamp=DateTime.UtcNow}
             * };
             * foreach (ConfigThing s in things)
             * {
             *  context.Thing.Add(s);
             *  context.SaveChanges();
             *  int id = s.ID;
             *  Console.WriteLine("Id is {0}", id);
             * }
             * context.SaveChanges();
             * IEnumerable<ConfigThing> things1 = context.Thing.AsEnumerable<ConfigThing>();
             * int count = things.Count<ConfigThing>();
             */

            /*
             *          var things = new ConfigThingParameter[]
             * {
             *          new ConfigThingParameter{ThingId=1, Name="Topic", Key="test/officewindow1/state", Timestamp=DateTime.UtcNow},
             *          new ConfigThing{Name="Sensor 2", ThingType=ThingType.Sensor, Timestamp=DateTime.UtcNow},
             *          new ConfigThing{Name="Action 1", ThingType=ThingType.Action, Timestamp=DateTime.UtcNow}
             * };Ø/
             *
             *          /*
             *
             *          var courses = new Course[]
             *          {
             *          new Course{CourseID=1050,Title="Chemistry",Credits=3},
             *          new Course{CourseID=4022,Title="Microeconomics",Credits=3},
             *          new Course{CourseID=4041,Title="Macroeconomics",Credits=3},
             *          new Course{CourseID=1045,Title="Calculus",Credits=4},
             *          new Course{CourseID=3141,Title="Trigonometry",Credits=4},
             *          new Course{CourseID=2021,Title="Composition",Credits=3},
             *          new Course{CourseID=2042,Title="Literature",Credits=4}
             *          };
             *          foreach (Course c in courses)
             *          {
             *              context.Course.Add(c);
             *          }
             *          context.SaveChanges();
             *
             *          var enrollments = new Enrollment[]
             *          {
             *          new Enrollment{StudentID=1,CourseID=1050,Grade=Grade.A},
             *          new Enrollment{StudentID=1,CourseID=4022,Grade=Grade.C},
             *          new Enrollment{StudentID=1,CourseID=4041,Grade=Grade.B},
             *          new Enrollment{StudentID=2,CourseID=1045,Grade=Grade.B},
             *          new Enrollment{StudentID=2,CourseID=3141,Grade=Grade.F},
             *          new Enrollment{StudentID=2,CourseID=2021,Grade=Grade.F},
             *          new Enrollment{StudentID=3,CourseID=1050},
             *          new Enrollment{StudentID=4,CourseID=1050},
             *          new Enrollment{StudentID=4,CourseID=4022,Grade=Grade.F},
             *          new Enrollment{StudentID=5,CourseID=4041,Grade=Grade.C},
             *          new Enrollment{StudentID=6,CourseID=1045},
             *          new Enrollment{StudentID=7,CourseID=3141,Grade=Grade.A},
             *          };
             *          foreach (Enrollment e in enrollments)
             *          {
             *              context.Enrollment.Add(e);
             *          }
             *          context.SaveChanges();
             */
        }
Exemplo n.º 3
0
        /*
         * public static void AddServiceConfig(ZoneGuardConfigContext context, ServiceDAL thing, ServiceParameterDAL[] parameters)
         * {
         *  context.Service.Add(thing);
         *  context.SaveChanges();
         *
         *  foreach (ServiceParameterDAL param in parameters)
         *  {
         *      param.Service = thing;
         *      context.ServiceParameter.Add(param);
         *  }
         *  context.SaveChanges();
         * }
         */


        public static void AddSensorStateLog(ZoneGuardConfigContext context, SensorStateLogDAL ssl)
        {
            context.SensorStateLog.Add(ssl);
            context.SaveChanges();
        }