コード例 #1
0
        public void Delete(String id)
        {
            Sensor sensor = GetId(id);

            if (sensor != null)
            {
                _context.Remove(sensor);
                _context.SaveChanges();
            }
        }
コード例 #2
0
        public Device UpdateDeviceData(int userId, UpdateDeviceDataDto updateDeviceDataDto)
        {
            var existingDevice = GetById(updateDeviceDataDto.DeviceId);

            if (existingDevice == null)
            {
                var createdDevice = new Device
                {
                    Id     = updateDeviceDataDto.DeviceId,
                    Name   = updateDeviceDataDto.Name,
                    UserId = userId
                };
                foreach (var sensor in updateDeviceDataDto.SensorData)
                {
                    var createdSensor = new Sensor {
                        SensorKey = sensor.SensorKey, SensorType = sensor.SensorType
                    };
                    var data = new SensorData(sensor.Value);
                    createdSensor.Data.Add(data);
                    createdDevice.Sensors.Add(createdSensor);
                }

                _context.Add(createdDevice);
                _context.SaveChanges();
                return(createdDevice);
            }

            foreach (var sensor in updateDeviceDataDto.SensorData)
            {
                var dataToAdd = new SensorData(sensor.Value);
                if (existingDevice.Sensors.All(s => s.SensorKey != sensor.SensorKey))
                {
                    var sensorToAdd = new Sensor
                    {
                        SensorKey  = sensor.SensorKey,
                        SensorType = sensor.SensorType
                    };
                    sensorToAdd.Data.Add(dataToAdd);
                    existingDevice.Sensors.Add(sensorToAdd);
                }
                else
                {
                    existingDevice.Sensors.SingleOrDefault(s => s.SensorKey == sensor.SensorKey)?.Data
                    .Add(dataToAdd);
                }
            }

            _context.Update(existingDevice);
            _context.SaveChanges();
            return(existingDevice);
        }
コード例 #3
0
ファイル: SensorLogical.cs プロジェクト: romeogresta/SCA
        public static Sensor ExcluirSensor(int id)
        {
            try {
                Sensor sensor = new Sensor();

                using (var dbSensor = new SensorContext()) {
                    sensor = (
                        from s in dbSensor.Records
                        where s.ID == id
                        select s).FirstOrDefault();

                    if (sensor != null)
                    {
                        dbSensor.Records.Remove(sensor);

                        dbSensor.SaveChanges();
                    }
                }

                return(sensor);
            }
            catch (Exception e) {
                throw (e);
            }
        }
コード例 #4
0
ファイル: SensorLogical.cs プロジェクト: romeogresta/SCA
        public static Sensor AlterarSensor(int id, SensorRequest sensorRequest)
        {
            try {
                Sensor sensor = new Sensor();

                using (var dbSensor = new SensorContext()) {
                    sensor = (
                        from s in dbSensor.Records
                        where s.ID == id
                        select s).FirstOrDefault();

                    if (sensor != null)
                    {
                        sensor.IDTipoSensor           = sensorRequest.IDTipoSensor;
                        sensor.IDBarragem             = sensorRequest.IDBarragem;
                        sensor.Name                   = sensorRequest.Name;
                        sensor.MedicaoMinima          = sensorRequest.MedicaoMinima;
                        sensor.MedicaoMaximaSeguranca = sensorRequest.MedicaoMaximaSeguranca;
                        sensor.MedicaoMaximaAlerta    = sensorRequest.MedicaoMaximaAlerta;

                        dbSensor.Records.Update(sensor);

                        dbSensor.SaveChanges();
                    }

                    return(sensor);
                }
            }
            catch (Exception e) {
                throw (e);
            }
        }
コード例 #5
0
        public JsonResult UnSubscribeFrom(int sensorId, string deviceId)
        {
            if (sensorId <= 0 || !Validator.Present(deviceId))
            {
                return(Json(new ApiError("Invalid request parameters.")));
            }

            try
            {
                using (SensorContext db = new SensorContext())
                {
                    Sensor sensor = db.Sensors.Single(s => s.ID == sensorId);

                    if (!sensor.GetNotificationIds().Any(dID => dID == deviceId))
                    {
                        return(Json(new ApiError("Device isn't subscribed to sensor.")));
                    }

                    sensor.GetNotificationIds().Remove(deviceId);
                    db.SaveChanges();
                    return(Json(new { succeeded = true }));
                }
            }
            catch (Exception e)
            {
                return(Json(new ApiError("An error occured.")));
            }
        }
コード例 #6
0
        public JsonResult addSensor(int id)
        {
            if (id <= 0)
            {
                return(Json(new ApiError("Invalid request parameters.")));
            }

            try
            {
                using (SensorContext db = new SensorContext())
                {
                    // check if id already exists
                    if (db.Sensors.Any(sensor => sensor.ID == id))
                    {
                        return(Json(new ApiError("Sensor already exists")));
                    }

                    db.Sensors.Add(new Sensor(id));
                    db.SaveChanges();
                    return(Json(new { succeeded = true }));
                }
            }
            catch (Exception e)
            {
                return(Json(new ApiError("An error occured.")));
            }
        }
コード例 #7
0
        public User Update(UserDto userDTO)
        {
            var user = _context.Users.SingleOrDefault(u => u.Id == userDTO.Id);

            if (user == null ||
                _context.Users.Any(u => u.UserName.ToLower() == userDTO.UserName.ToLower() && u.Id != userDTO.Id))
            {
                // If user doesnt exist or user name is already taken
                return(null);
            }

            user.UserName = userDTO.UserName;
            if (!string.IsNullOrEmpty(userDTO.Password))
            {
                user.Password = userDTO.Password;
            }
            user.Email           = userDTO.Email;
            user.IsAdministrator = userDTO.IsAdministrator;
            _context.Users.Update(user);
            _context.SaveChanges();
            return(user);
        }
コード例 #8
0
        public Task <int?> RegisterSensorAsync(SensorRegisterRequest request)
        {
            var host = _context.SensorHost.FirstOrDefault(x => x.Id == request.HostId);

            if (host == null)
            {
                return(null);
            }

            var sensor = _context.Sensor.FirstOrDefault(x => x.HostSensorId == request.HostSensorId);

            if (sensor != null)
            {
                return(Task.FromResult <int?>(sensor.Id));
            }

            sensor      = _mapper.Map <Sensor>(request);
            sensor.Host = host;
            _context.Sensor.Add(sensor);
            _context.SaveChanges();
            return(Task.FromResult <int?>(sensor.Id));
        }
コード例 #9
0
ファイル: SensorLogical.cs プロジェクト: romeogresta/SCA
        public static Sensor IncluirSensor(SensorRequest sensorRequest)
        {
            try {
                using (var dbSensor = new SensorContext()) {
                    Sensor sensor = new Sensor(sensorRequest.IDTipoSensor, sensorRequest.IDBarragem, sensorRequest.Name, sensorRequest.MedicaoMinima, sensorRequest.MedicaoMaximaSeguranca, sensorRequest.MedicaoMaximaAlerta);
                    dbSensor.Records.Add(sensor);

                    dbSensor.SaveChanges();

                    LogSensorLogical.GerarDadosIniciais(sensor.ID);

                    return(sensor);
                }
            }
            catch (Exception e) {
                throw (e);
            }
        }
コード例 #10
0
ファイル: SensorLogical.cs プロジェクト: romeogresta/SCA
        public static void CarregarDadosIniciais()
        {
            string json = "";

            var assembly     = Assembly.GetExecutingAssembly();
            var resourceName = "SCA.DadosIniciais.Sensor.json";

            using (Stream stream = assembly.GetManifestResourceStream(resourceName)) {
                using (StreamReader reader = new StreamReader(stream)) {
                    json = reader.ReadToEnd();
                }
            }

            List <Sensor> sensores = JsonConvert.DeserializeObject <List <Sensor> >(json);

            using (var dbSensor = new SensorContext()) {
                dbSensor.Records.AddRange(sensores);

                dbSensor.SaveChanges();
            }
        }
コード例 #11
0
        private void Add_Click(object sender, RoutedEventArgs e)
        {
            using (var db = new SensorContext())
            {
                Sensor sensor;
                try
                {
                    sensor = new Sensor {
                        SensorId = new System.Guid(NewSensor.Text), Title = NewSensor.Text, Location = "Here"
                    };
                    db.Sensors.Add(sensor);
                    db.SaveChanges();
                }
                catch
                {
                    //sensor = new Sensor { SensorId = new System.Guid(), Location = "Here" };
                    NewSensor.Text = "not a valid Guid";
                }

                Sensors.ItemsSource = db.Sensors.ToList();
            }
        }
コード例 #12
0
 public void StoreData(SensorData data)
 {
     db.SensorDatas.Add(data);
     db.SaveChanges();
 }
コード例 #13
0
 public void SaveRefreshToken(RefreshToken refreshToken)
 {
     _context.RefreshTokens.Add(refreshToken);
     _context.SaveChanges();
 }
コード例 #14
0
        public static async Task <long> Get_Data(int pastHours, string sensorId, long lastUpdatedTicks)
        {
            SensorContext db        = new SensorContext();
            long          itemTicks = 0;

            try
            {
                var resources = ResourceLoader.GetForCurrentView("Resources");

                var blobStorageKey = resources.GetString("BlobStorageKey");

                string storageConnection                = "DefaultEndpointsProtocol=https;AccountName=envirodata;AccountKey=" + blobStorageKey;
                CloudStorageAccount   storageAccount    = CloudStorageAccount.Parse(storageConnection);
                CloudBlobClient       blobClient        = storageAccount.CreateCloudBlobClient();
                CloudBlobContainer    container         = blobClient.GetContainerReference(sensorId);
                BlobContinuationToken myToken           = new BlobContinuationToken();
                BlobContinuationToken continuationToken = null;
                List <IListBlobItem>  results           = new List <IListBlobItem>();
                do
                {
                    var response = await container.ListBlobsSegmentedAsync(continuationToken);

                    continuationToken = response.ContinuationToken;
                    results.AddRange(response.Results);
                }while (continuationToken != null);
                TimeSpan pastSpan  = new TimeSpan(0, pastHours, 0, 0);
                long     fromTicks = DateTime.Now.Subtract(pastSpan).Ticks;

                Sensor sensor;
                string currentId      = "";
                bool   erasePreImport = false;
                if (erasePreImport)
                {
                    db.AmbientDataSample.RemoveRange(db.AmbientDataSample);
                    db.SaveChanges();
                }
                foreach (IListBlobItem item in results)
                {
                    itemTicks = Convert.ToInt64(item.Uri.ToString().Split('_')[1].Split('.')[0]);
                    if (itemTicks > fromTicks && itemTicks > lastUpdatedTicks)
                    {
                        string          blobText    = await(item as CloudBlockBlob).DownloadTextAsync();
                        JArray          jsonContent = JsonConvert.DeserializeObject(blobText) as JArray;
                        List <Ambience> ambBunch    = new List <Ambience>();
                        foreach (JToken entry in jsonContent)
                        {
                            JObject myAmb = entry.ToObject <JObject>();
                            currentId = myAmb.GetValue("ID").ToString();
                            sensor    = db.Sensors.Where(x => x.SensorId.ToString().Equals(myAmb.GetValue("sensorID").ToString())).FirstOrDefault();
                            if (sensor == null) // move out of foreach loop
                            {
                                try
                                {
                                    sensor = new Sensor {
                                        SensorId = new Guid(myAmb.GetValue("sensorID").ToString()), Title = "generic", Location = "Here"
                                    };
                                    db.Sensors.Add(sensor);
                                    db.SaveChanges();
                                }
                                catch (Exception ex)
                                {
                                    Debug.WriteLine(ex.Message);
                                }
                            }
                            if (!currentId.Equals("0"))
                            {
                                Ambience myAmbience = new Ambience();
                                myAmbience.AmbienceId  = (int)myAmb.GetValue("ID"); //.ToObject<int>();
                                myAmbience.captureTime = DateTime.Parse(myAmb.GetValue("captureTime").ToString());
                                myAmbience.temperature = myAmb.GetValue("temperature").ToObject <decimal>();
                                myAmbience.humidity    = myAmb.GetValue("humidity").ToObject <decimal>();
                                myAmbience.Sensor      = sensor;
                                ambBunch.Add(myAmbience);
                            }
                        }
                        db.AmbientDataSample.AddRange(ambBunch);
                        db.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
            return(itemTicks);
        }