Ejemplo n.º 1
0
        private PopulationDataEntry GetPopulationDataFromCache(Int32 year)
        {
            PopulationDataEntry data = null;

            if (_downloadedData.Keys.Contains(year))
            {
                data = _downloadedData[year];
                data = (PopulationDataEntry)data.Clone();
            }
            return(data);
        }
Ejemplo n.º 2
0
        internal void AddTambonInThesabanToAmphoe(PopulationDataEntry iTambon, PopulationDataEntry iThesaban)
        {
            PopulationDataEntry lMainTambon = FindByCodeAndType(iTambon.Geocode, EntityType.Tambon);
            PopulationDataEntry lMainAmphoe = FindByCode(iTambon.Geocode / 100);

            if (lMainTambon == null)
            {
                if (lMainAmphoe != null)
                {
                    lMainTambon = (PopulationDataEntry)iTambon.Clone();
                    lMainAmphoe.SubEntities.Add(lMainTambon);
                }
            }
            else
            {
                lMainTambon.Total      = lMainTambon.Total + iTambon.Total;
                lMainTambon.Male       = lMainTambon.Male + iTambon.Male;
                lMainTambon.Female     = lMainTambon.Female + iTambon.Female;
                lMainTambon.Households = lMainTambon.Households + iTambon.Households;
            }
            if (lMainAmphoe != null)
            {
                lMainAmphoe.Total      = lMainAmphoe.Total + iTambon.Total;
                lMainAmphoe.Male       = lMainAmphoe.Male + iTambon.Male;
                lMainAmphoe.Female     = lMainAmphoe.Female + iTambon.Female;
                lMainAmphoe.Households = lMainAmphoe.Households + iTambon.Households;
            }
            if (lMainTambon != null)
            {
                PopulationDataEntry lNewEntity = new PopulationDataEntry()
                {
                    Geocode    = iThesaban.Geocode,
                    Name       = iThesaban.Name,
                    English    = iThesaban.English,
                    Type       = iThesaban.Type,
                    Total      = iTambon.Total,
                    Male       = iTambon.Male,
                    Female     = iTambon.Female,
                    Households = iTambon.Households
                };
                lMainTambon.SubEntities.Add(lNewEntity);
            }
        }
Ejemplo n.º 3
0
 private void StorePopulationDataToCache(PopulationDataEntry data, Int32 year)
 {
     _downloadedData[year] = (PopulationDataEntry)data.Clone();
 }
Ejemplo n.º 4
0
        internal void GetCodes(PopulationDataEntry geocodeSource)
        {
            List <PopulationDataEntry> missedEntities = new List <PopulationDataEntry>();

            if (geocodeSource != null)
            {
                // this == geocodeSource => copy directly from source
                if (((Name == geocodeSource.Name) | (geocodeSource.OldNames.Contains(Name))) & (EntityTypeHelper.IsCompatibleEntityType(Type, geocodeSource.Type)))
                {
                    CopyStaticDataFrom(geocodeSource);
                }

                foreach (PopulationDataEntry subEntity in SubEntities)
                {
                    // find number of sub entities with same name and type
                    Int32 position = 0;
                    if (subEntity.Type != EntityType.Muban)
                    {
                        foreach (PopulationDataEntry find in SubEntities)
                        {
                            if (find == subEntity)
                            {
                                break;
                            }
                            if (find.SameNameAndType(subEntity.Name, subEntity.Type))
                            {
                                position++;
                            }
                        }
                    }

                    PopulationDataEntry sourceEntity = null;
                    if (subEntity.Type == EntityType.Muban)
                    {
                        sourceEntity = geocodeSource.FindByCode(subEntity.Geocode);
                    }
                    else
                    {
                        sourceEntity = geocodeSource.FindByNameAndType(subEntity.Name, subEntity.Type, false, position);
                        if (sourceEntity == null)
                        {
                            sourceEntity = geocodeSource.FindByNameAndType(subEntity.Name, subEntity.Type, true, position);
                        }
                    }
                    if (sourceEntity != null)
                    {
                        subEntity.GetCodes(sourceEntity);
                    }
                    else
                    {
                        // Problem!
                    }

                    if (EntityTypeHelper.Thesaban.Contains(subEntity.Type) | (EntityTypeHelper.Sakha.Contains(subEntity.Type)))
                    {
                        foreach (Int32 parentCode in subEntity.GeocodeParent)
                        {
                            PopulationDataEntry parentEntity = geocodeSource.FindByCode(parentCode);
                            if (parentEntity != null)
                            {
                                subEntity.GetCodes(parentEntity);
                                PopulationDataEntry sourceValue = this.FindByCode(parentCode);
                                if (sourceValue == null)
                                {
                                    PopulationDataEntry newEntry = (PopulationDataEntry)parentEntity.Clone();
                                    newEntry.SubEntities.Clear();
                                    Boolean found = false;
                                    foreach (PopulationDataEntry compare in missedEntities)
                                    {
                                        found = found | (compare.Geocode == newEntry.Geocode);
                                    }
                                    if (!found)
                                    {
                                        missedEntities.Add(newEntry);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            foreach (PopulationDataEntry newEntry in missedEntities)
            {
                PopulationDataEntry parent = this.FindByCode(newEntry.Geocode / 100);
                if (parent != null)
                {
                    parent.SubEntities.Add(newEntry);
                }
                parent.SortSubEntitiesByGeocode();
            }
        }
Ejemplo n.º 5
0
 private void StorePopulationDataToCache(PopulationDataEntry data, Int32 year)
 {
     _downloadedData[year] = (PopulationDataEntry)data.Clone();
 }
Ejemplo n.º 6
0
 internal void AddTambonInThesabanToAmphoe(PopulationDataEntry iTambon, PopulationDataEntry iThesaban)
 {
     PopulationDataEntry lMainTambon = FindByCodeAndType(iTambon.Geocode, EntityType.Tambon);
     PopulationDataEntry lMainAmphoe = FindByCode(iTambon.Geocode / 100);
     if ( lMainTambon == null )
     {
         if ( lMainAmphoe != null )
         {
             lMainTambon = (PopulationDataEntry)iTambon.Clone();
             lMainAmphoe.SubEntities.Add(lMainTambon);
         }
     }
     else
     {
         lMainTambon.Total = lMainTambon.Total + iTambon.Total;
         lMainTambon.Male = lMainTambon.Male + iTambon.Male;
         lMainTambon.Female = lMainTambon.Female + iTambon.Female;
         lMainTambon.Households = lMainTambon.Households + iTambon.Households;
     }
     if ( lMainAmphoe != null )
     {
         lMainAmphoe.Total = lMainAmphoe.Total + iTambon.Total;
         lMainAmphoe.Male = lMainAmphoe.Male + iTambon.Male;
         lMainAmphoe.Female = lMainAmphoe.Female + iTambon.Female;
         lMainAmphoe.Households = lMainAmphoe.Households + iTambon.Households;
     }
     if ( lMainTambon != null )
     {
         PopulationDataEntry lNewEntity = new PopulationDataEntry()
         {
             Geocode = iThesaban.Geocode,
             Name = iThesaban.Name,
             English = iThesaban.English,
             Type = iThesaban.Type,
             Total = iTambon.Total,
             Male = iTambon.Male,
             Female = iTambon.Female,
             Households = iTambon.Households
         };
         lMainTambon.SubEntities.Add(lNewEntity);
     }
 }