本文整理汇总了C#中Entity.FlatList方法的典型用法代码示例。如果您正苦于以下问题:C# Entity.FlatList方法的具体用法?C# Entity.FlatList怎么用?C# Entity.FlatList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Entity
的用法示例。
在下文中一共展示了Entity.FlatList方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EntityBrowserForm_Load
private void EntityBrowserForm_Load(object sender, EventArgs e)
{
_baseEntity = GlobalData.CompleteGeocodeList();
_baseEntity.CalcOldGeocodesRecursive();
_baseEntity.PropagatePostcodeRecursive();
_baseEntity.PropagateObsoleteToSubEntities();
_allEntities = _baseEntity.FlatList().Where(x => !x.IsObsolete).ToList();
var allLocalGovernmentParents = _allEntities.Where(x => x.type == EntityType.Tambon || x.type == EntityType.Changwat).ToList();
_localGovernments.AddRange(_allEntities.Where(x => x.type.IsLocalGovernment()));
foreach ( var tambon in allLocalGovernmentParents )
{
var localGovernmentEntity = tambon.CreateLocalGovernmentDummyEntity();
if ( localGovernmentEntity != null )
{
_localGovernments.Add(localGovernmentEntity);
_allEntities.Add(localGovernmentEntity);
}
}
GlobalData.LoadPopulationData(PopulationDataSource, PopulationReferenceYear);
CalculateLocalGovernmentPopulation();
PopulationDataToTreeView();
}
示例2: CountSubdivisionsWithoutLocation
private Dictionary<EntityType, Int32> CountSubdivisionsWithoutLocation(Entity entity)
{
var toCount = _localGovernments.Where(x => x.parent.Contains(entity.geocode) || GeocodeHelper.IsBaseGeocode(entity.geocode, x.geocode)).ToList();
toCount.AddRange(entity.FlatList().Where(x => !x.type.IsLocalGovernment()));
toCount.RemoveAll(x => x.type == EntityType.Unknown || x.IsObsolete);
toCount.RemoveAll(x => x.office.Any(y => y.Point != null));
return CountSubdivisions(toCount);
}
示例3: CountSubdivisions
private Dictionary<EntityType, Int32> CountSubdivisions(Entity entity)
{
var toCount = _localGovernments.Where(x => x.parent.Contains(entity.geocode) || GeocodeHelper.IsBaseGeocode(entity.geocode, x.geocode)).SelectMany(x => x.FlatList()).ToList();
// Chumchon and local governments are already in list, so filter them out while adding the central government units
toCount.AddRange(entity.FlatList().Where(x => !x.type.IsLocalGovernment() && x.type != EntityType.Chumchon));
toCount.RemoveAll(x => x.type == EntityType.Unknown || x.IsObsolete);
return CountSubdivisions(toCount);
}
示例4: CheckForErrors
private void CheckForErrors(Entity entity)
{
var text = String.Empty;
var wrongGeocodes = entity.WrongGeocodes();
if ( wrongGeocodes.Any() )
{
text += "Wrong geocodes:" + Environment.NewLine;
foreach ( var code in wrongGeocodes )
{
text += String.Format(" {0}", code) + Environment.NewLine;
}
text += Environment.NewLine;
}
var localGovernmentsInEntity = LocalGovernmentEntitiesOf(entity).ToList();
// var localGovernmentsInProvince = LocalGovernmentEntitiesOf(this.baseEntity.entity.First(x => x.geocode == GeocodeHelper.ProvinceCode(entity.geocode))).ToList();
var localEntitiesWithOffice = localGovernmentsInEntity.Where(x => x.Dola != null && !x.IsObsolete).ToList(); // Dola != null when there is a local government office
// var localEntitiesInProvinceWithOffice = localGovernmentsInProvince.Where(x => x.Dola != null && !x.IsObsolete).ToList(); // Dola != null when there is a local government office
if ( ShowDolaErrors )
{
var entitiesWithDolaCode = localEntitiesWithOffice.Where(x => x.Dola.codeSpecified).ToList();
var allDolaCodes = entitiesWithDolaCode.Select(x => x.Dola.code).ToList();
var duplicateDolaCodes = allDolaCodes.GroupBy(s => s).SelectMany(grp => grp.Skip(1)).ToList();
if ( duplicateDolaCodes.Any() )
{
text += "Duplicate DOLA codes:" + Environment.NewLine;
foreach ( var code in duplicateDolaCodes )
{
text += String.Format(" {0}", code) + Environment.NewLine;
}
text += Environment.NewLine;
}
var invalidDolaCodeEntities = entitiesWithDolaCode.Where(x => !x.DolaCodeValid()).ToList();
if ( invalidDolaCodeEntities.Any() )
{
text += "Invalid DOLA codes:" + Environment.NewLine;
foreach ( var dolaEntity in invalidDolaCodeEntities )
{
text += String.Format(" {0} {1} ({2})", dolaEntity.Dola.code, dolaEntity.english, dolaEntity.type) + Environment.NewLine;
}
text += Environment.NewLine;
}
}
var localEntitiesWithoutParent = localEntitiesWithOffice.Where(x => !x.parent.Any());
if ( localEntitiesWithoutParent.Any() )
{
text += "Local governments without parent:" + Environment.NewLine;
foreach ( var subEntity in localEntitiesWithoutParent )
{
text += String.Format(" {0} {1}", subEntity.geocode, subEntity.english) + Environment.NewLine;
}
text += Environment.NewLine;
}
var allTambon = entity.FlatList().Where(x => x.type == EntityType.Tambon && !x.IsObsolete).ToList();
var localGovernmentCoverages = new List<LocalGovernmentCoverageEntity>();
foreach ( var item in localEntitiesWithOffice )
{
localGovernmentCoverages.AddRange(item.LocalGovernmentAreaCoverage);
}
var localGovernmentCoveragesByTambon = localGovernmentCoverages.GroupBy(s => s.geocode);
var tambonWithMoreThanOneCoverage = localGovernmentCoveragesByTambon.Where(x => x.Count() > 1);
var duplicateCompletelyCoveredTambon = tambonWithMoreThanOneCoverage.Where(x => x.Any(y => y.coverage == CoverageType.completely)).Select(x => x.Key);
var invalidLocalGovernmentCoverages = localGovernmentCoveragesByTambon.Where(x => !allTambon.Any(y => y.geocode == x.Key));
// var tambonWithMoreThanOneCoverage = localGovernmentCoveragesByTambon.SelectMany(grp => grp.Skip(1)).ToList();
// var duplicateCompletelyCoveredTambon = tambonWithMoreThanOneCoverage.Where(x => x.coverage == CoverageType.completely);
if ( invalidLocalGovernmentCoverages.Any() )
{
text += "Invalid Tambon references by areacoverage:" + Environment.NewLine;
foreach ( var code in invalidLocalGovernmentCoverages )
{
text += String.Format(" {0}", code.Key) + Environment.NewLine;
}
text += Environment.NewLine;
}
if ( duplicateCompletelyCoveredTambon.Any() )
{
text += "Tambon covered completely more than once:" + Environment.NewLine;
foreach ( var code in duplicateCompletelyCoveredTambon )
{
text += String.Format(" {0}", code) + Environment.NewLine;
}
text += Environment.NewLine;
}
var partialLocalGovernmentCoverages = localGovernmentCoverages.Where(x => x.coverage == CoverageType.partially);
var partiallyCoveredTambon = partialLocalGovernmentCoverages.GroupBy(s => s.geocode);
var onlyOnePartialCoverage = partiallyCoveredTambon.Select(group => new
{
code = group.Key,
count = group.Count()
}).Where(x => x.count == 1).Select(y => y.code);
if ( onlyOnePartialCoverage.Any() )
{
text += "Tambon covered partially only once:" + Environment.NewLine;
foreach ( var code in onlyOnePartialCoverage )
{
text += String.Format(" {0}", code) + Environment.NewLine;
}
text += Environment.NewLine;
}
//.........这里部分代码省略.........
示例5: CheckCode
private String CheckCode(Entity entity, IEnumerable<EntityType> entityTypes, String codeName, Func<Entity, String> selector, String format)
{
String text = String.Empty;
var allEntites = entity.FlatList().Where(x => !x.IsObsolete);
var allEntityOfFittingType = allEntites.Where(x => x.type.IsCompatibleEntityType(entityTypes));
var entitiesWithoutCode = allEntityOfFittingType.Where(x => String.IsNullOrEmpty(selector(x)));
if ( entitiesWithoutCode.Any() )
{
text += String.Format("Entity without {0} code ({1}):", codeName, entitiesWithoutCode.Count()) + Environment.NewLine;
foreach ( var subEntity in entitiesWithoutCode )
{
text += String.Format(" {0}", subEntity.geocode) + Environment.NewLine;
}
text += Environment.NewLine;
}
var allCodes = allEntites.Where(x => !String.IsNullOrEmpty(selector(x))).Select(y => selector(y)).ToList();
var duplicateCodes = allCodes.GroupBy(s => s).SelectMany(grp => grp.Skip(1)).ToList();
if ( duplicateCodes.Any() )
{
text += String.Format("Duplicate {0} codes:", codeName) + Environment.NewLine;
foreach ( var code in duplicateCodes )
{
text += String.Format(" {0}", code) + Environment.NewLine;
}
text += Environment.NewLine;
}
var regex = new Regex(format);
var invalidCodes = allCodes.Where(x => !regex.IsMatch(x));
if ( invalidCodes.Any() )
{
text += String.Format("Invalid {0} codes:", codeName) + Environment.NewLine;
foreach ( var code in invalidCodes )
{
text += String.Format(" {0}", code) + Environment.NewLine;
}
text += Environment.NewLine;
}
return text;
}
示例6: CalcMubanData
private void CalcMubanData(Entity entity)
{
String result = String.Empty;
var allTambon = entity.FlatList().Where(x => !x.IsObsolete && x.type == EntityType.Tambon);
var allMuban = entity.FlatList().Where(x => !x.IsObsolete && x.type == EntityType.Muban);
var mubanNumbers = allTambon.GroupBy(x => x.entity.Count(y => !y.IsObsolete && y.type == EntityType.Muban))
.Select(g => g.Key).ToList();
mubanNumbers.Sort();
if ( allMuban.Count() == 0 )
{
result = "No Muban" + Environment.NewLine;
}
else
{
result = String.Format("{0} Muban; Tambon have between {1} and {2} Muban" + Environment.NewLine,
allMuban.Count(),
mubanNumbers.First(),
mubanNumbers.Last());
var counter = new FrequencyCounter();
foreach ( var tambon in allTambon )
{
counter.IncrementForCount(tambon.entity.Count(x => x.type == EntityType.Muban && !x.IsObsolete), tambon.geocode);
}
result += String.Format("Most common Muban number: {0}", counter.MostCommonValue) + Environment.NewLine;
result += String.Format("Median Muban number: {0:0.0}", counter.MeanValue) + Environment.NewLine;
List<UInt32> tambonWithNoMuban = null;
if ( counter.Data.TryGetValue(0, out tambonWithNoMuban) )
{
result += String.Format("Tambon without Muban: {0}", tambonWithNoMuban.Count) + Environment.NewLine;
}
}
// could add: Muban creations in last years
var tambonWithInvalidMubanNumber = TambonWithInvalidMubanNumber(allTambon);
if ( tambonWithInvalidMubanNumber.Any() )
{
result += Environment.NewLine + String.Format("Muban inconsistent for {0} Muban:", tambonWithInvalidMubanNumber.Count()) + Environment.NewLine;
foreach ( var tambon in tambonWithInvalidMubanNumber )
{
result += String.Format("{0}: {1}", tambon.geocode, tambon.english) + Environment.NewLine;
}
}
txtMuban.Text = result;
}