Пример #1
0
        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));
        }
Пример #2
0
        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
        }