public void TestUnitConversion() { Verbrauch v1 = new Verbrauch() { Obiskennzahl = "123", Wertermittlungsverfahren = Wertermittlungsverfahren.MESSUNG, Einheit = Mengeneinheit.MW, Wert = 17, Startdatum = new DateTimeOffset(2017, 12, 31, 23, 0, 0, TimeSpan.Zero).UtcDateTime, Enddatum = new DateTimeOffset(2018, 3, 31, 23, 0, 0, TimeSpan.Zero).UtcDateTime }; v1.ConvertToUnit(Mengeneinheit.KW); Assert.AreEqual(Mengeneinheit.KW, v1.Einheit); Assert.AreEqual(17000.0M, v1.Wert); Assert.ThrowsException <InvalidOperationException>(() => v1.ConvertToUnit(Mengeneinheit.KWH)); }
public void ShowCaseTest() { var verbrauchA = new Verbrauch() { Startdatum = new DateTime(2020, 3, 1, 0, 0, 0, DateTimeKind.Utc), Enddatum = new DateTime(2020, 3, 8, 0, 0, 0, DateTimeKind.Utc), Wert = 0.456M, Einheit = Mengeneinheit.MW, Wertermittlungsverfahren = Wertermittlungsverfahren.MESSUNG }; verbrauchA.ConvertToUnit(Mengeneinheit.KW); Debug.WriteLine($"{nameof(verbrauchA)} contains {verbrauchA.Wert}{verbrauchA.Einheit}"); // v contains 456,000KW try { verbrauchA.ConvertToUnit(Mengeneinheit.TAG); } catch (InvalidOperationException ioe) { Debug.WriteLine(ioe.Message); // KW and TAG are not convertible into each other because they don't share the same dimension. } var verbrauchB = new Verbrauch() { Startdatum = new DateTime(2020, 3, 7, 0, 0, 0, DateTimeKind.Utc), Enddatum = new DateTime(2020, 3, 14, 0, 0, 0, DateTimeKind.Utc), Wert = 0.1M, Einheit = Mengeneinheit.KW, Wertermittlungsverfahren = Wertermittlungsverfahren.MESSUNG }; foreach (Verbrauch v in verbrauchA.Merge(verbrauchB)) { Debug.WriteLine($"{v.Startdatum.ToString("yyyy-MM-dd")} to {v.Enddatum.ToString("yyyy-MM-dd")}: {v.Wert}{v.Einheit}"); } // 2020-03-01 to 2020-03-07: 456,000KW // 2020-03-07 to 2020-03-08: 456,100KW // 2020-03-08 to 2020-03-14: 0,1KW }