public void ObjectsShouldNotBeEqualWhenDifferentRegionIds(int id1, int id2) { NaceRegionData rd1 = new NaceRegionData() { regionId = id1, naceId = naceId1, year = testYear }; NaceRegionData rd2 = new NaceRegionData() { regionId = id2, naceId = naceId1, year = testYear }; Assert.AreNotEqual(rd1, rd2); }
public void ObjectsShouldNotBeEqualWhenDifferentYears(int year1, int year2) { NaceRegionData nrd1 = new NaceRegionData() { year = year1, regionId = regionId1, naceId = naceId1 }; NaceRegionData nrd2 = new NaceRegionData() { year = year2, regionId = regionId2, naceId = naceId1 }; Assert.AreNotEqual(nrd1, nrd2); }
/// <summary> /// Converts a JSON-file on string format to a list of corresponding NaceRegionData objects. /// </summary> /// <param name="jsonString">A JSON object represented as a string</param> /// <param name="attributeName">The name of the datafield. Used to find and set the correct property in NaceRegionObjects</param> /// <returns></returns> public async Task <List <NaceRegionData> > Convert(string jsonString, string attributeName) { un = new EuroStatJSONUnNester(jsonString); List <NaceRegionData> nrdList = new List <NaceRegionData>(); List <String> naceRegionYearFields = new List <String>(); List <int> numberOfItemsInFields = new List <int>(); if (!un.IsValidDataset()) { return(nrdList); } List <Region> regions = await databaseStore.getAllRegions(); List <Nace> naces = await databaseStore.getAllNaces(); foreach (KeyValuePair <String, String> entry in un.GetValues()) { List <int> totalElementsList = un.GetFields().ConvertAll(field => field.totalElements); List <int> indexes = findIndexesOfFields(int.Parse(entry.Key), totalElementsList); int naceId = indexes[un.GetFieldIndex("nace")]; int regionId = indexes[un.GetFieldIndex("region")]; int yearId = indexes[un.GetFieldIndex("year")]; string naceCode = un.GetNaceCode(naceId: naceId); string regionCode = un.GetRegionCode(regionId: regionId); int year = un.GetYear(yearId: yearId); double propValue = double.Parse(entry.Value, CultureInfo.InvariantCulture); Nace nace = naces.Find(nace => nace.naceCode == naceCode); Region region = regions.Find(region => region.regionCode == regionCode); if (nace != null && region != null) { NaceRegionData nrd = new NaceRegionData() { naceId = nace.naceId, regionId = region.regionId, year = year }; Type type = nrd.GetType(); PropertyInfo prop = type.GetProperty(attributeName); prop.SetValue(nrd, propValue, null); nrdList.Add(nrd); } } return(nrdList); }
public void ObjectsShouldNotMergeWhenDifferentNaceIds(int id1, int id2) { NaceRegionData nrd1 = new NaceRegionData() { naceId = id1, regionId = regionId1, year = testYear }; NaceRegionData nrd2 = new NaceRegionData() { naceId = id2, regionId = regionId1, year = testYear, emissionPerYear = testEmissionPerYer }; NaceRegionData nrdMerged = nrd1.merge(nrd2); Assert.AreEqual(nrd1, nrdMerged); }
public async Task <List <NaceRegionData> > addNaceRegionData(List <NaceRegionData> newNaceRegionData) { List <NaceRegionData> existingNaceRegionData = await db.NaceRegionData.ToListAsync(); foreach (NaceRegionData newNRD in newNaceRegionData) { NaceRegionData existingElement = existingNaceRegionData.Find((exNRD) => exNRD.Equals(newNRD)); if (existingElement == null) { await db.NaceRegionData.AddAsync(newNRD); } else { existingElement.merge(newNRD); } } db.SaveChanges(); return(await db_wp.NaceRegionData.ToListAsync()); }
public void Setup() { nrd1WithEmissionPerYear = new NaceRegionData() { naceId = naceId1, regionId = regionId1, year = testYear, emissionPerYear = testEmissionPerYer }; nrd1WithGenderPayGap = new NaceRegionData() { naceId = naceId1, regionId = regionId1, year = testYear, genderPayGap = testGenderPayGap }; nrd1WithEmissionAndGenderPayGap = new NaceRegionData() { naceId = naceId1, regionId = regionId1, year = testYear, genderPayGap = testGenderPayGap, emissionPerYear = testEmissionPerYer }; nrd2WithoutData = new NaceRegionData() { regionId = regionId2, year = testYear }; requiredFields = new List <string>() { "naceRegionDataId", "region", "regionId", "nace", "naceId", "year" }; }
public void ObjectsShouldMergeProperties() { NaceRegionData rdMerged = nrd1WithGenderPayGap.merge(nrd1WithEmissionPerYear); Assert.AreEqual(nrd1WithEmissionAndGenderPayGap, rdMerged); }