Exemple #1
0
        public async Task SendMessage(Action action, Sensor sensor, double value)
        {
            var typedMessage = new TypedMessage();

            var taskDescriptor   = new TaskDescriptor();
            var actionDescriptor = new ActionDescriptor();

            actionDescriptor.Parameter = "true";
            actionDescriptor.Type      = Action.Indication;

            taskDescriptor.Action = actionDescriptor;

            var conditionDescriptor = new ConditionDescriptor();

            conditionDescriptor.ComparisonType = Condition.GreaterThan;
            conditionDescriptor.SensorType     = sensor;
            conditionDescriptor.Target         = value;
            taskDescriptor.Condition           = conditionDescriptor;

            taskDescriptor.DeviceId = "raspberry1";

            typedMessage.Data = taskDescriptor;
            typedMessage.Type = AutomationSystemCore.Management.MessageHeaders.CreateTask;

            string connectionString = "HostName=AutomationSystemHub.azure-devices.net;DeviceId=test;SharedAccessKey=O/B4sln1uG0KmnBeSeEZoxbVODL27q5coJmd8G/z2s4=";

            var deviceClientSend = DeviceClient.CreateFromConnectionString(connectionString);

            var messageString = JsonConvert.SerializeObject(typedMessage);
            var message       = new Microsoft.Azure.Devices.Client.Message(Encoding.ASCII.GetBytes(messageString));

            await deviceClientSend.SendEventAsync(message);

            Debug.WriteLine("{0} > Sending message: {1}", DateTime.Now, messageString);
        }
        public async Task <IActionResult> PostConditionDescriptor([FromBody] ConditionDescriptor conditionDescriptor)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.ConditionDescriptors.Add(conditionDescriptor);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetConditionDescriptor", new { id = conditionDescriptor.Id }, conditionDescriptor));
        }
        public void SeedConditionDescriptorTable()
        {
            DataTable table    = _seedData.Tables["ConditionDescriptors"];
            int       rowcount = table.Rows.Count;

            for (int i = 0; i < rowcount; i++)
            {
                object[] columns = table.Rows[i].ItemArray;

                ConditionDescriptor conditiondescriptor = new ConditionDescriptor
                {
                    Id   = new Guid(columns[0].ToString()),
                    Text = columns[1].ToString()
                };
                _context.ConditionDescriptors.Add(conditiondescriptor);
            }
            _context.SaveChanges();
        }
        public async Task <IActionResult> PutConditionDescriptor([FromRoute] Guid id, [FromBody] ConditionDescriptor conditionDescriptor)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != conditionDescriptor.Id)
            {
                return(BadRequest());
            }

            _context.Entry(conditionDescriptor).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ConditionDescriptorExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }