public void DoWork(IEnumerable <JObject> data)
        {
            DateTime date       = GetRandomDate();
            string   capability = GetRandomCapability();
            int      count      = 0;

            foreach (JObject obj in data)
            {
                string objCapabilities = (string)obj.Property("capabilities").Value;
                string objDateString   = (string)obj.Property("time").Value;
                objDateString = objDateString.Substring(0, objDateString.Length - 22);
                DateTime objDateTime = DateTime.Parse(objDateString);

                if (objCapabilities.Contains(capability) && objDateTime.CompareTo(date) > 0)
                {
                    ++count;
                }
            }

            WifiCapability wifiCapability = new WifiCapability
            {
                Capability = capability,
                Count      = count,
                Time       = date.ToString("dd-MM-yyyy HH:mm")
            };

            this.wifiCapabilityRepository.InsertWifiCapability(wifiCapability);
            mqttService.PublishMessage("wifi", JsonConvert.SerializeObject(wifiCapability));
        }
 public IActionResult Post([FromBody] WifiCapability wifiCapability)
 {
     using (var scope = new TransactionScope())
     {
         wifiCapabilityRepository.InsertWifiCapability(wifiCapability);
         scope.Complete();
         return(CreatedAtAction(nameof(Get), wifiCapability));
     }
 }
 public async Task InsertWifiCapability(WifiCapability wifiCapability)
 {
     try
     {
         await _context.WifiCapabilities.InsertOneAsync(wifiCapability);
     }
     catch (Exception ex)
     {
         // log or manage the exception
         throw ex;
     }
 }
        public async Task <bool> UpdateWifiCapability(WifiCapability wifiCapability)
        {
            var filter = Builders <WifiCapability> .Filter.Eq("_id", wifiCapability.Id);

            ReplaceOneResult result = await _context.WifiCapabilities
                                      .ReplaceOneAsync(item => item.Id == wifiCapability.Id,
                                                       wifiCapability,
                                                       new UpdateOptions { IsUpsert = true });



            return(result.IsAcknowledged);
        }
        public async Task <IActionResult> Put([FromBody] WifiCapability wifiCapability)
        {
            if (wifiCapability != null)
            {
                bool success = await wifiCapabilityRepository.UpdateWifiCapability(wifiCapability);

                if (success)
                {
                    return(new OkResult());
                }
                return(BadRequest());
            }
            return(new NoContentResult());
        }