private string CreateDeviceConfigurationString(DeviceConfiguration deviceConfig) { StringBuilder configStringBuilder = new StringBuilder(); configStringBuilder.Append("$pollingon:"); configStringBuilder.Append(deviceConfig.PollingEnabled?1:0); configStringBuilder.Append(";"); configStringBuilder.Append("$interval:"); configStringBuilder.Append(deviceConfig.PostBackIntervalMinutes); configStringBuilder.Append(";"); WateringArea firstWateringArea = deviceConfig.WateringAreas.Single(w => w.WateringLocation == WateringLocation.First); configStringBuilder.Append("$water1max:"); configStringBuilder.Append(firstWateringArea.MaxSoilHumidity); configStringBuilder.Append(";"); configStringBuilder.Append("$water1min:"); configStringBuilder.Append(firstWateringArea.MinSoilHumidity); configStringBuilder.Append(";"); WateringArea secondWateringArea = deviceConfig.WateringAreas.Single(w => w.WateringLocation == WateringLocation.First); configStringBuilder.Append("$water2max:"); configStringBuilder.Append(secondWateringArea.MaxSoilHumidity); configStringBuilder.Append(";"); configStringBuilder.Append("$water2min:"); configStringBuilder.Append(secondWateringArea.MaxSoilHumidity); configStringBuilder.Append(";"); return(configStringBuilder.ToString()); }
public static void Initialize(GreenHouseDatabaseContext context) { context.Database.EnsureCreated(); // Look for any device configurations if (context.DeviceConfigurations.Any()) { return; // DB has been seeded } var deviceConfiguration = new DeviceConfiguration { SparkCoreId = "300037001447343339383037", SparkCoreAccessToken = "4c98879cda2840fbfdedfa6c6b872264a4015961", PollingEnabled = true, PostBackUrl = "greuter.azure.com", PostBackPort = 8080, PostBackIntervalMinutes = 5, WateringAreas = new List <WateringArea>(), }; WateringArea areaOne = new WateringArea { DeviceConfiguration = deviceConfiguration, AreaName = "BachSeite", MaxSoilHumidity = 80, MinSoilHumidity = 50, WateringLocation = WateringLocation.First }; WateringArea areaTwo = new WateringArea { DeviceConfiguration = deviceConfiguration, AreaName = "FeldSeite", MaxSoilHumidity = 90, MinSoilHumidity = 40, WateringLocation = WateringLocation.Second }; deviceConfiguration.WateringAreas.Add(areaOne); deviceConfiguration.WateringAreas.Add(areaTwo); context.DeviceConfigurations.Add(deviceConfiguration); context.SaveChanges(); }
public WateringArea UpdateWateringArea(int deviceId, WateringArea wateringArea) { DeviceConfiguration existingConfiguration = GetSingle(deviceId); if (existingConfiguration != null) { var wateringAreaToUpdate = existingConfiguration.WateringAreas.SingleOrDefault(w => w.Id == wateringArea.Id); if (wateringAreaToUpdate != null) { _dbContext.Update(wateringAreaToUpdate); wateringAreaToUpdate.AreaName = wateringArea.AreaName; wateringAreaToUpdate.MaxSoilHumidity = wateringArea.MaxSoilHumidity; wateringAreaToUpdate.MinSoilHumidity = wateringArea.MinSoilHumidity; _dbContext.SaveChanges(); return(wateringAreaToUpdate); } } return(null); }