コード例 #1
0
        public async Task <bool> Handle(DeleteRegisterEntryCommand request, CancellationToken cancellationToken)
        {
            var repo = _factory.GetRegistryEntryRepo(request.IdentityName);
            var ok   = await repo.DeleteRegistryEntry(request.Time);

            return(ok);
        }
コード例 #2
0
        public async Task <AddRegisterEntryResult> Handle(AddRegisterEntriesCommand request, CancellationToken cancellationToken)
        {
            var timeseries = TsParser.ParseTimeseries(request.Model.EntriesString);
            var repo       = _factory.GetRegistryEntryRepo(request.IdentityName);

            await repo.AddRegistryEntries(timeseries);

            return(new AddRegisterEntryResult());
        }
コード例 #3
0
        public async Task <Timeseries> Handle(ListRegisterEntriesCommand request, CancellationToken cancellationToken)
        {
            var repo = _factory.GetRegistryEntryRepo(request.IdentityName);

            var entries = await repo.GetRegistryEntries();

            var sortedTvqs            = entries.OrderBy(x => x.Time);
            var tsWithRegisterEntries = new Timeseries();

            tsWithRegisterEntries.AddRange(sortedTvqs.ToList());
            return(tsWithRegisterEntries);
        }
コード例 #4
0
        public async Task <Timeseries> Handle(GetMonthlyAveragesCommand request, CancellationToken cancellationToken)
        {
            var repo       = _factory.GetRegistryEntryRepo(request.IdentityName);
            var sortedTvqs = (await repo.GetRegistryEntries()).OrderBy(x => x.Time);

            var tsWithRegisterEntries = new Timeseries();

            tsWithRegisterEntries.AddRange(sortedTvqs.ToList());

            var periodizer      = new Periodizer();
            var monthlyAverages = periodizer.MonthlyAverage(tsWithRegisterEntries);

            return(monthlyAverages);
        }
コード例 #5
0
        public async Task <AddRegisterEntryResult> Handle(AddRegisterEntryCommand request, CancellationToken cancellationToken)
        {
            var ok = DateTime.TryParse(request.Model.DateString, out var t);

            if (!ok)
            {
                return(new AddRegisterEntryResult(false, "Datum kunde ej tolkas"));
            } // TODO better error handling

            ok = int.TryParse(request.Model.RegisterValue, out var v);
            if (!ok)
            {
                return(new AddRegisterEntryResult(false, "Mätarställning kunde ej tolkas"));
            } // TODO better error handling

            var now     = DateTime.Now;
            var isToday =
                t.Year == now.Year &&
                t.Month == now.Month &&
                t.Day == now.Day;

            var isMidnight = t.Hour == 0 && t.Minute == 0;

            if (isToday && isMidnight)
            {
                t = now;
            }

            var tvq = new Tvq(t, v, Quality.Ok);

            var repo = _factory.GetRegistryEntryRepo(request.IdentityName);
            await repo.AddRegistryEntries(new List <Tvq> {
                tvq
            });

            var result = new AddRegisterEntryResult();

            return(result);
        }