// [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)] public IActionResult Post([FromBody] DataQueryResource filterResource) { // if (CurrentUser == null) // { // return BadRequest("There is no user with the User Name"); // } var dataResourceResult = new List <DataDailyResource>(); foreach (var keyParameterResource in filterResource.KeyParameterResources) { dataResourceResult.Add(GetDataResource(filterResource, keyParameterResource)); } return(Ok(dataResourceResult)); }
public async Task <IActionResult> Post([FromBody] DataQueryResource filterResource) { if (CurrentUser == null) { return(BadRequest("There is no user with the User Name")); } var dataResourceResult = new List <DataResource>(); foreach (var keyParameterResource in filterResource.KeyParameterResources) { dataResourceResult.Add(await GetDataResourceAsync(filterResource, keyParameterResource)); } return(Ok(dataResourceResult)); }
private async Task <DataResource> GetDataResourceAsync(DataQueryResource filterResource, KeyParameterResource keyParameterResource) { var filter = mapper.Map <DataQueryResource, SubVariableDataQuery>(filterResource); filter.IsPaging = false; filter.KeyParameterId = keyParameterResource.Id; filter.KeyParameterLevelId = keyParameterResource.KeyParameterLevelId; filter.ParentRegionId = CurrentUser.ParentRegionId; var queryResult = await _subVariablesData.GetSubVariableData(filter, true); var newDataResource = new DataResource { KeyParameterId = keyParameterResource.Id, KeyParameterLevelId = keyParameterResource.KeyParameterLevelId }; if (queryResult == null || !queryResult.Items.Any()) { return(newDataResource); } var years = queryResult.Items.Select(i => i.Year).OrderBy(y => y).Distinct(); var subVariables = queryResult.Items.Select(i => i.SubVariable.Name).Distinct().ToList(); newDataResource.Years = years; newDataResource.SubVariables = subVariables; newDataResource.Values = new List <decimal[]>(); for (var i = 0; i < subVariables.Count(); i++) { var items = queryResult.Items.Where(d => d.SubVariable.Name == subVariables[i]) .OrderBy(y => y.Year) .Select(d => d.Value).ToArray(); var itemsToAdd = new decimal[years.Count()]; for (var j = 0; j < items.Length; j++) { itemsToAdd[j] = items[j]; } newDataResource.Values.Add(itemsToAdd); } return(newDataResource); }
private DataDailyResource GetDataResource(DataQueryResource filterResource, KeyParameterResource keyParameterResource) { // var filter = _mapper.Map<DataQueryResource, SubVariableDataQuery>(filterResource); // filter.IsPaging = false; // filter.KeyParameterId = keyParameterResource.Id; // filter.KeyParameterLevelId = keyParameterResource.KeyParameterLevelId; // filter.ParentRegionId = CurrentUser.ParentRegionId; var result = _subVariableDailyDataRepository.GetSubVariableData(); var newDataResource = new DataDailyResource { KeyParameterId = keyParameterResource.Id, KeyParameterLevelId = keyParameterResource.KeyParameterLevelId }; if (result == null || !result.Any()) { return(newDataResource); } var dates = result.Select(i => $"{i.Year}-{i.Month}").OrderBy(y => y).Distinct(); var subVariables = result.Select(i => i.SubVariable.Name).Distinct().ToList(); newDataResource.Date = dates; newDataResource.SubVariables = subVariables; newDataResource.Values = new List <decimal[]>(); for (var i = 0; i < subVariables.Count(); i++) { var items = result.Where(d => d.SubVariable.Name == subVariables[i]) .OrderBy(y => y.Year).OrderBy(y => y.Month) .Select(d => d.Value).ToArray(); var itemsToAdd = new decimal[dates.Count()]; for (var j = 0; j < items.Length; j++) { itemsToAdd[j] = items[j]; } newDataResource.Values.Add(itemsToAdd); } return(newDataResource); }