Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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());
        }
Exemple #6
0
 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"
     };
 }
Exemple #7
0
        public void ObjectsShouldMergeProperties()
        {
            NaceRegionData rdMerged = nrd1WithGenderPayGap.merge(nrd1WithEmissionPerYear);

            Assert.AreEqual(nrd1WithEmissionAndGenderPayGap, rdMerged);
        }