private PopulationDataEntry GetPopulationDataFromCache(Int32 year) { PopulationDataEntry data = null; if (_downloadedData.Keys.Contains(year)) { data = _downloadedData[year]; data = (PopulationDataEntry)data.Clone(); } return(data); }
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); } }
private void StorePopulationDataToCache(PopulationDataEntry data, Int32 year) { _downloadedData[year] = (PopulationDataEntry)data.Clone(); }
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(); } }
private void StorePopulationDataToCache(PopulationDataEntry data, Int32 year) { _downloadedData[year] = (PopulationDataEntry)data.Clone(); }
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); } }