public async Task <JsonResult> GetPlanedRouteTrainsTable([FromBody] TimeRangeRequest timeRange) { await CheckPermission(); var service = new ScheludePlanedService(_logger, _mapper); var result = await service.PlanedRouteTrainsTable(timeRange.StartTime, timeRange.EndTime); result = result.OrderBy(x => int.Parse("0" + Regex.Match(x.Route.Name, "(\\d+)").Value)) .ThenBy(x => string.Join("_", x.RouteDays.Select(d => ((int)d).ToString()))).ToList(); return(Json(result)); }
public async Task <IEnumerable <TimeRangeResponse> > TimeRangeQuery(TimeRangeRequest request) { return(await GetData("dbo.[TimeRangeQuery]", new List <SqlParameter> { new SqlParameter("@DateType", SqlDbType.VarChar) { Value = request.DateType.ToString() }, new SqlParameter("@FromDate", SqlDbType.VarChar) { Value = request.FromDate.ToString(DateFormat) }, new SqlParameter("@ToDate", SqlDbType.VarChar) { Value = request.ToDate.ToString(DateFormat) }, new SqlParameter("@DimensionType", SqlDbType.VarChar) { Value = request.DimensionType.ToString() }, new SqlParameter("@DimensionTypeValue", SqlDbType.Int) { Value = request.DimensionTypeValue }, new SqlParameter("@AggregateType", SqlDbType.VarChar) { Value = request.AggregateType.ToString() }, new SqlParameter("@DataPointType", SqlDbType.VarChar) { Value = request.DataPointType.DataPointToField() } }, reader => { var mapped = new List <TimeRangeResponse>(); while (reader.Read()) { mapped.Add(new TimeRangeResponse { DateType = (int)reader["DateType"], DataPoint = (decimal)reader["DataPoint"] }); } return mapped; } )); }
public async Task <IActionResult> GetTimeRange(TimeRangeRequest request) { return(request.IsValid() ? (IActionResult)Json(await _dataContext.TimeRangeQuery(request)) : BadRequest()); }
public async Task <IActionResult> GetActivityStatistics([FromRoute] string groupId, [FromQuery] TimeRangeRequest timeRangeRequest) { Result <List <TimeRangeStatisticsModel> > result = await _groupAdminDashboardService.GetActivityStatistics( groupId, timeRangeRequest); return(result.ToApiResult()); }
public async Task <Result <List <TimeRangeStatisticsModel> > > GetRegistrationStatistics(string groupId, TimeRangeRequest timeRangeRequest) { ValidationResult validationResult = _timeRangeRequestValidator.Validate(timeRangeRequest); if (!validationResult.IsValid) { _logger.LogError($"Invalid {typeof(TimeRangeRequest).Name} model"); return(Result.Fail <List <TimeRangeStatisticsModel> >(validationResult.ToResultError())); } IBaseSpecification <GroupUserEntity, DateTimeOffset> specification = SpecificationBuilder .Create <GroupUserEntity>() .Where(x => x.User._CreatedDate != null) .Where(x => x.User._CreatedDate >= timeRangeRequest.From) .Where(x => x.User._CreatedDate < timeRangeRequest.To) .Where(x => x.GroupId == groupId) .Select(x => x.User._CreatedDate.Value) .Build(); List <DateTimeOffset> dateTimes = await _groupUserStore.Get(specification); List <TimeRangeStatisticsModel> viewModel = dateTimes .GroupBy(x => new { x.UtcDateTime.Year, x.UtcDateTime.Month, x.UtcDateTime.Day }) .Select(x => new TimeRangeStatisticsModel( dateTime: new DateTime(x.Key.Year, x.Key.Month, x.Key.Day, 0, 0, 0, DateTimeKind.Utc), value: x.Count())) .ToList(); DateTime dateTime = new DateTime( timeRangeRequest.From.UtcDateTime.Year, timeRangeRequest.From.UtcDateTime.Month, timeRangeRequest.From.UtcDateTime.Day, 0, 0, 0, DateTimeKind.Utc); for (; dateTime < timeRangeRequest.To; dateTime = dateTime.AddDays(1)) { bool exists = viewModel .Where(x => x.DateTime == dateTime) .Any(); if (!exists) { viewModel.Add(new TimeRangeStatisticsModel( dateTime: dateTime, value: 0)); } } viewModel = viewModel .OrderBy(x => x.DateTime) .ToList(); return(Result.Ok(viewModel)); }