public IActionResult GetMetricsByTimePeriod([FromRoute] NetworkMetricGetByTimePeriodRequest request) { logger.LogInformation($"From={request.From}|To={request.To}"); var requestDAL = mapper.Map <DAL.Requests.NetworkMetricGetByTimePeriodRequest>(request); var metrics = repository.GetByTimePeriod(requestDAL); var response = new NetworkMetricsResponse(); response.Metrics = metrics.Select(metric => mapper.Map <NetworkMetricDto>(metric)).ToList(); return(Ok(response)); }
public IList <NetworkMetric> GetByTimePeriod(NetworkMetricGetByTimePeriodRequest request) { using var connection = Connection.New(); var result = connection.Query <NetworkMetric>($"SELECT * FROM NetworkMetrics WHERE Time >= @from AND Time <= @to", new { from = request.From, to = request.To }); return(result.AsList()); }
public void GetMetricsByTimePeriod_ReturnsOk() { //Moq Setup repository.Setup(r => r.GetByTimePeriod(It.IsAny <MetricsAgent.DAL.Requests.NetworkMetricGetByTimePeriodRequest>())).Returns(new List <NetworkMetric>()); //Arrange NetworkMetricGetByTimePeriodRequest request = new NetworkMetricGetByTimePeriodRequest { From = DateTimeOffset.FromUnixTimeSeconds(0), To = DateTimeOffset.FromUnixTimeSeconds(100) }; //Act var result = controller.GetMetricsByTimePeriod(request); // Assert repository.Verify(r => r.GetByTimePeriod(It.IsAny <MetricsAgent.DAL.Requests.NetworkMetricGetByTimePeriodRequest>()), Times.AtMostOnce()); _ = Assert.IsAssignableFrom <IActionResult>(result); }