private void AreEqual(TemperatureSetting expected, TemperatureSetting actual, String name="") { Assert.IsNotNull(actual); Assert.AreEqual(expected.Id, actual.Id, $"Id of {name} does not match"); Assert.AreEqual(expected.HeatTemperatureC, actual.HeatTemperatureC, $"HeatTemperatureC of {name} does not match"); Assert.AreEqual(expected.CoolTemperatureC, actual.CoolTemperatureC, $"CoolTemperatureC of {name} does not match"); Assert.AreEqual(expected.DayOfWeek, actual.DayOfWeek, $"DayOfWeek of {name} does not match"); Assert.AreEqual(expected.StartTime, actual.StartTime, $"StartTime of {name} does not match"); Assert.AreEqual(expected.EndTime, actual.EndTime, $"EndTime of {name} does not match"); Assert.AreEqual(expected.StartTime, actual.StartTime, $"StartTime of {name} does not match"); Assert.AreEqual(expected.EndTime, actual.EndTime, $"EndTime of {name} does not match"); }
public void GetTest() { using(IDataContext context = new Mocks.MockDataContext()) { #region Test Items int temp = 1; var today = new DateTime(2016, 8, 3, 2, 4, 1); var previousTwo = today.AddDays(-2); var previous = today.AddDays(-1); var tomorrow = today.AddDays(1); var twoDays = today.AddDays(2); var threeDays = today.AddDays(3); // defaults only one should be returned from the query. var ts_1 = new TemperatureSetting(); ts_1.HeatTemperatureC = temp++; ts_1.CoolTemperatureC = temp++; ts_1.DateCreated = DateTime.Now.AddDays(-20); ts_1.DateModified = DateTime.Now; context.TemperatureSettings.Add(ts_1); var ts_2 = new TemperatureSetting(); ts_2.HeatTemperatureC = temp++; ts_2.CoolTemperatureC = temp++; ts_2.DateCreated = ts_2.DateModified = DateTime.Now.AddDays(-5); context.TemperatureSettings.Add(ts_2); context.SaveChanges(); // Items that are day of the week // 2 days ago var ts_3 = new TemperatureSetting(); ts_3.HeatTemperatureC = temp++; ts_3.CoolTemperatureC = temp++; ts_3.DayOfWeek = previousTwo.DayOfWeek; context.TemperatureSettings.Add(ts_3); //yesterday var ts_4 = new TemperatureSetting(); ts_4.HeatTemperatureC = temp++; ts_4.CoolTemperatureC = temp++; ts_4.DayOfWeek = previous.DayOfWeek; ts_4.StartTime = new DateTime(1, 1, 1, 12, 0, 0); ts_4.EndTime = new DateTime(1, 1, 1, 12, 10, 0); context.TemperatureSettings.Add(ts_4); var ts_5 = new TemperatureSetting(); ts_5.HeatTemperatureC = temp++; ts_5.CoolTemperatureC = temp++; ts_5.DayOfWeek = previous.DayOfWeek; context.TemperatureSettings.Add(ts_5); var ts_6 = new TemperatureSetting(); ts_6.HeatTemperatureC = temp++; ts_6.CoolTemperatureC = temp++; ts_6.DayOfWeek = previous.DayOfWeek; ts_6.StartTime = new DateTime(1, 1, 1, 0, 0, 0); context.TemperatureSettings.Add(ts_6); // today var ts_7 = new TemperatureSetting(); ts_7.HeatTemperatureC = temp++; ts_7.CoolTemperatureC = temp++; ts_7.DayOfWeek = today.DayOfWeek; context.TemperatureSettings.Add(ts_7); var ts_8 = new TemperatureSetting(); ts_8.HeatTemperatureC = temp++; ts_8.CoolTemperatureC = temp++; ts_8.DayOfWeek = today.DayOfWeek; ts_8.StartTime = new DateTime(1, 1, 1, 8, 45, 0); context.TemperatureSettings.Add(ts_8); var ts_9 = new TemperatureSetting(); ts_9.HeatTemperatureC = temp++; ts_9.CoolTemperatureC = temp++; ts_9.DayOfWeek = today.DayOfWeek; ts_9.StartTime = new DateTime(1, 1, 1, 8, 46, 0); context.TemperatureSettings.Add(ts_9); // tomorrow var ts_10 = new TemperatureSetting(); ts_10.HeatTemperatureC = temp++; ts_10.CoolTemperatureC = temp++; ts_10.DayOfWeek = tomorrow.DayOfWeek; ts_10.StartTime = new DateTime(1, 1, 1, 13, 13, 0); context.TemperatureSettings.Add(ts_10); var ts_11 = new TemperatureSetting(); ts_11.HeatTemperatureC = temp++; ts_11.CoolTemperatureC = temp++; ts_11.DayOfWeek = tomorrow.DayOfWeek; ts_11.StartTime = new DateTime(1, 1, 1, 13, 12, 0); context.TemperatureSettings.Add(ts_11); var ts_12 = new TemperatureSetting(); ts_12.HeatTemperatureC = temp++; ts_12.CoolTemperatureC = temp++; ts_12.DayOfWeek = tomorrow.DayOfWeek; context.TemperatureSettings.Add(ts_12); // two days var ts_13 = new TemperatureSetting(); ts_13.HeatTemperatureC = temp++; ts_13.CoolTemperatureC = temp++; ts_13.DayOfWeek = twoDays.DayOfWeek; context.TemperatureSettings.Add(ts_13); // three days (should not be returned) var ts_14 = new TemperatureSetting(); ts_14.HeatTemperatureC = temp++; ts_14.CoolTemperatureC = temp++; ts_14.DayOfWeek = threeDays.DayOfWeek; context.TemperatureSettings.Add(ts_14); // spacific dates context.SaveChanges(); #endregion using (var controller = new TemperatureSettingsController(context)) { var results = controller.Get(today).ToList(); Assert.IsNotNull(results); Assert.IsTrue(results.Count > 0); var actual = results[0]; //AreEqual(ts_1, actual); //// ts_3 is not expected to be returned. //actual = results[1]; // expected to be ts_5; //AreEqual(ts_5, actual); //actual = results[2]; // expected to be ts_6; //AreEqual(ts_6, actual); //actual = results[3]; // expected to be ts_4 //AreEqual(ts_4, actual); //actual = results[4]; // expected to be ts_7; //AreEqual(ts_7, actual); //actual = results[5]; // expected to be ts_8; //AreEqual(ts_8, actual); //actual = results[6]; // expected to be ts_9; //AreEqual(ts_9, actual); //actual = results[7]; // expected to be ts_12; //AreEqual(ts_12, actual); //actual = results[8]; // exptected to be ts_11; //AreEqual(ts_11, actual); //actual = results[9]; // expected to be ts_10; //AreEqual(ts_10, actual); //actual = results[10]; // expected to be ts_13; //AreEqual(ts_13, actual); } } }
private void removeSection(TemperatureSetting temperatureSetting) { for(int i = 0; i < sections.Count; i++) { if(sections[i].DataContext == temperatureSetting) { var section = sections[i]; section.Tapped -= tempSection_Tapped; sections.RemoveAt(i); Calander.Children.Remove(section); break; } } }
private void addDayTemperatureToWeek(TemperatureSetting temperatureSetting) { TemperatureSection tempSection = new TemperatureSection(); tempSection.DataContext = temperatureSetting; tempSection.SetValue(Grid.ColumnProperty, (int)temperatureSetting.DayOfWeek); int rowSpan = 0; int row = 0; var end = new DateTime(1, 1, 2, 0, 0, 0); for (DateTime dt = new DateTime(1, 1, 1, 0, 0, 0); dt <= end; dt = dt.AddMinutes(30)) { if (temperatureSetting.StartTime == dt) { tempSection.SetValue(Grid.RowProperty, row); } if(temperatureSetting.StartTime < dt && temperatureSetting.EndTime >= dt) { rowSpan++; } row++; } tempSection.SetValue(Grid.RowSpanProperty, rowSpan); tempSection.Tapped += tempSection_Tapped; sections.Add(tempSection); Calander.Children.Add(tempSection); }
/// <summary> /// Posts the temperature setting asynchronous. /// </summary> /// <param name="setting">The setting.</param> /// <returns></returns> /// <exception cref="ServerException">Server Error</exception> public async Task<long> PostTemperatureSettingAsync(TemperatureSetting setting) { var clientHandler = new HttpClientHandler(); clientHandler.CookieContainer.Add(settings.ServerUrl, new System.Net.Cookie(Constants.AuthzCookieName, settings.AuthzCookieValue)); using (HttpClient client = new HttpClient(clientHandler)) { var builder = new UriBuilder(settings.ServerUrl); builder.Path = "/api/TemperatureSettings"; var result = await client.PostAsync(builder.Uri, new StringContent(JsonConvert.SerializeObject(setting), Encoding.UTF8, "application/json")); if(!result.IsSuccessStatusCode) { throw new ServerException("Server Error", (int)result.StatusCode); } var data = await result.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject<long>(data); } }
// GET: api/values /// <summary> /// Gets the TemperatureSettings that would be applyed from today -1, today, today +1, today +2 /// </summary> /// <returns></returns> //[HttpGet] //public IEnumerable<TemperatureSetting> Get(DateTime now) //{ // var resultDefaults = (from f in context.TemperatureSettings // where f.DayOfWeek == null // && f.LongStartDate == null // && f.LongEndDate == null // orderby f.DateModified descending // select f).Take(1); // if(resultDefaults.Count() == 0) // { // var first = new TemperatureSetting(); // first.HeatTemperatureC = 15.6; // first.CoolTemperatureC = 29.5; // context.TemperatureSettings.Add(first); // context.SaveChanges(); // resultDefaults = (from f in context.TemperatureSettings // where f.DayOfWeek == null // && f.LongStartDate == null // && f.LongEndDate == null // orderby f.DateModified descending // select f).Take(1); // } // var yesterday = now.AddDays(-1); // var tomorrow = now.AddDays(1); // var twoDays = now.AddDays(2); // var resultsDay = from f in context.TemperatureSettings // where (f.DayOfWeek == yesterday.DayOfWeek || // f.DayOfWeek == now.DayOfWeek || // f.DayOfWeek == tomorrow.DayOfWeek || // f.DayOfWeek == twoDays.DayOfWeek) && // f.LongStartDate == null && // f.LongEndDate == null // orderby f.DayOfWeek, f.ShortTimeStart // select f; // return resultDefaults.Union(resultsDay); //} //// GET api/values/5 //[HttpGet("{id}")] //public string Get(int id) //{ // return "value"; //} //// POST api/values //[HttpPost] //public void Post([FromBody]string value) //{ //} private void updateTemperatureData(TemperatureSetting setting) { if (setting.CoolTemperatureC < setting.HeatTemperatureC + 2.222222222) { setting.CoolTemperatureC = setting.HeatTemperatureC + 2.2222222; } else if (setting.HeatTemperatureC > setting.CoolTemperatureC - 2.2222222) { setting.HeatTemperatureC = setting.CoolTemperatureC - 2.2222222; } }
/// <summary> /// Deletes the tempeerature setting asynchronous. /// </summary> /// <param name="temperature">The temperature.</param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public async Task DeleteTemperatureSettingAsync(TemperatureSetting temperature) { if(temperature == null) { throw new ArgumentNullException(nameof(temperature)); } AddBackgroudStackNumber(); await server.DeleteTemperatureSettingAsync(temperature.Id); DaySettings.Remove(temperature); RemoveBackgroundStackNumber(); }
/// <summary> /// Creates the new temperature setting. /// </summary> /// <returns></returns> public TemperatureSetting CreateNewTemperatureSetting() { var ts = new TemperatureSetting(); ts.CoolTemperatureC = ((double)DefaultCool).FahrenheitToCelsius(); ts.HeatTemperatureC = ((double)DefaultHeat).FahrenheitToCelsius(); return ts; }
public async Task SaveTemperatureSettingAsync(TemperatureSetting temperature) { AddBackgroudStackNumber(); if(temperature.Id > 0) { await server.PutTemperatureSettingAsync(temperature); DaySettings.Remove(temperature); DaySettings.Add(temperature); } else { temperature.Id = await server.PostTemperatureSettingAsync(temperature); if(temperature.DayOfWeek != null && temperature.StartTime != null) { DaySettings.Add(temperature); } } RemoveBackgroundStackNumber(); }