private async Task SaveSubVariableDataInDbAsync(IEnumerable <SubVariableData> subVariableData) { foreach (var subVariableDataItem in subVariableData) { var subVariableDataQuery = new SubVariableDataQuery(); subVariableDataQuery.RegionId = subVariableDataItem.RegionId; subVariableDataQuery.ScenarioId = subVariableDataItem.ScenarioId; subVariableDataQuery.VariableId = subVariableDataItem.VariableId; subVariableDataQuery.SubVariableId = subVariableDataItem.SubVariableId; subVariableDataQuery.KeyParameterId = subVariableDataItem.KeyParameterId; subVariableDataQuery.KeyParameterLevelId = subVariableDataItem.KeyParameterLevelId; subVariableDataQuery.RegionAgrigationTypeId = subVariableDataItem.RegionAgrigationTypeId; subVariableDataQuery.Year = subVariableDataItem.Year; var existSubVariableData = await _subVariableDataRepository.GetSubVariableData(subVariableDataQuery); if (existSubVariableData.TotalItems > 0) { var subVariableDataItemFromDb = existSubVariableData.Items.FirstOrDefault(); subVariableDataItemFromDb.Value = subVariableDataItem.Value; _subVariableDataRepository.Update(subVariableDataItemFromDb); } else { _subVariableDataRepository.Add(subVariableDataItem); } } await _unitOfWork.CompleteAsync(); }
public void Remove(SubVariableDataQuery queryObj) { queryObj.IsPaging = false; var query = context.SubVariableData .AsQueryable(); query = query.ApplyFiltering(queryObj); context.SubVariableData.RemoveRange(query); }
public void RemovePopulation(SubVariableDataQuery queryObj) { queryObj.IsPaging = false; var query = context.SubVariableData .AsQueryable(); query = query.ApplyFiltering(queryObj); query = query.Where(sv => sv.Variable.Name == NxsVariablesConstants.Variables.Population); context.SubVariableData.RemoveRange(query); }
public async Task <QueryResult <SubVariableData> > GetSubVariableData(SubVariableDataQuery queryObj, bool includeRelated = false) { var result = new QueryResult <SubVariableData>(); var query = getSubVariableData(queryObj, includeRelated); result.TotalItems = await query.CountAsync(); result.Items = await query.ToListAsync(); return(result); }
public override async Task RemoveDataAsync() { var queryObj = new SubVariableDataQuery { RegionId = CurrentRegionId, ScenarioId = XlsImportVariableDataService.CurrentScenarioId, KeyParameterId = XlsImportVariableDataService.CurrentKeyParameterId, KeyParameterLevelId = XlsImportVariableDataService.CurrentKeyParameterLevelId }; _subVariableDataRepository.RemoveGeneral(queryObj); await _unitOfWork.CompleteAsync(); }
public void RemoveGeneral(SubVariableDataQuery queryObj) { queryObj.IsPaging = false; var query = context.SubVariableData .AsQueryable(); query = query.ApplyFiltering(queryObj); query = query.Where(sv => sv.Region.Name != RegionConstants.WorldRegionName && sv.Variable.Name != NxsVariablesConstants.Variables.Gdp && sv.Variable.Name != NxsVariablesConstants.Variables.Population); context.SubVariableData.RemoveRange(query); }
private IQueryable <SubVariableData> getSubVariableData(SubVariableDataQuery queryObj, bool includeRelated = false) { var query = context.SubVariableData .AsQueryable(); query = query.ApplyFiltering(queryObj); query = query.ApplyPaging(queryObj); if (includeRelated) { query = query.Include(sv => sv.SubVariable); } return(query); }
public static IQueryable <SubVariableData> ApplyFiltering(this IQueryable <SubVariableData> query, SubVariableDataQuery queryObj) { if (queryObj.ParentRegionId.HasValue) { query = query.Where(v => v.ParentRegionId == queryObj.ParentRegionId.Value); } if (queryObj.RegionId.HasValue) { query = query.Where(v => v.RegionId == queryObj.RegionId.Value); } else { query = query.Where(v => v.RegionId == null); } if (queryObj.RegionAgrigationTypeId.HasValue) { query = query.Where(v => v.RegionAgrigationTypeId == queryObj.RegionAgrigationTypeId.Value); } if (queryObj.ScenarioId.HasValue) { query = query.Where(v => v.ScenarioId == queryObj.ScenarioId.Value); } if (queryObj.VariableId.HasValue) { query = query.Where(v => v.VariableId == queryObj.VariableId.Value); } if (queryObj.SubVariableId.HasValue) { query = query.Where(v => v.SubVariableId == queryObj.SubVariableId.Value); } if (queryObj.KeyParameterId.HasValue) { query = query.Where(v => v.KeyParameterId == queryObj.KeyParameterId.Value); } if (queryObj.KeyParameterLevelId.HasValue) { query = query.Where(v => v.KeyParameterLevelId == queryObj.KeyParameterLevelId.Value); } if (!string.IsNullOrEmpty(queryObj.Year)) { query = query.Where(v => v.Year == queryObj.Year); } return(query); }
public async Task <QueryResult <SubVariableData> > GetSubVariableDataWithoutGdp(SubVariableDataQuery queryObj, bool includeRelated = false) { var result = new QueryResult <SubVariableData>(); var query = getSubVariableData(queryObj, includeRelated); query = query.Where(sv => sv.Variable.Name != NxsVariablesConstants.Variables.Gdp); result.TotalItems = await query.CountAsync(); result.Items = await query.ToListAsync(); return(result); }
public IEnumerable <SubVariableDailyData> GetSubVariableData(SubVariableDataQuery queryObj = null, bool includeRelated = false) { var query = SubVariableDailyData; return(query); }