//this method loads all distinct types of incidents reported over the years public IEnumerable<string> LoadIncidentTypes() { using (var context = new HoneyBadgerEntities()) { var stateDisasters = from sd in context.StateDisasterViews select sd; if (stateDisasters.Count() > 0) return stateDisasters.Select<StateDisasterView, string>(x => x.DisasterType).Distinct().OrderBy(x => x).ToList(); } //defaults to two incident types to keep the feel of the UI return new List<string> { "Flood", "Severe Ice Storm" }; }
//this method loads all distinct years for which incidents are reported public IEnumerable<Int32> LoadIncidentYears() { using (var context = new HoneyBadgerEntities()) { var stateDisasters = from sd in context.StateDisasterViews select sd; if (stateDisasters.Count()>0) return stateDisasters.Select<StateDisasterView, Int32>(x =>x.DisasterYear).Distinct().OrderBy(x=>x).ToList(); } //defaults to last threee calendar years if no disaster data is found in database return new List<Int32> { DateTime.Now.Year - 2, DateTime.Now.Year - 1, DateTime.Now.Year }; }
public XDocument GetData(string disasterType, string disasterYear, string regionLevel) { IEnumerable<KMLData> kmlData = null; IEnumerable<KMLGeometry> geometry = null; XDocument kml = null; using (var context = new HoneyBadgerEntities()) { if (regionLevel == RegionLevel.State.ToString()) {// Query for disaster data at state level var stateDisasters = from sd in context.StateDisasterViews where ((String.IsNullOrEmpty(disasterYear) ? sd.DisasterYear.ToString() : disasterYear).Contains(sd.DisasterYear.ToString()) && (String.IsNullOrEmpty(disasterType) ? sd.DisasterType.ToString() : disasterType).Contains(sd.DisasterType.ToString())) select sd; kmlData = stateDisasters.Select<StateDisasterView, KMLData>(x => new KMLData() { Amount = x.ProjectAmount, Disaster = x.DisasterType, RegionIdentifier = x.name, Year = x.DisasterYear }); geometry = stateDisasters.Select<StateDisasterView, KMLGeometry>(x => new KMLGeometry() { RegionIdentifier = x.name, RegionName = x.name, Color = x.StateColor, Geometry = x.Geometry }); } else {// Query for disaster data at county level var countyDisasters = from cd in context.CountyDisasterViews where ((String.IsNullOrEmpty(disasterYear) ? cd.DisasterYear.ToString() : disasterYear).Contains(cd.DisasterYear.ToString()) && (String.IsNullOrEmpty(disasterType) ? cd.DisasterType.ToString() : disasterType).Contains(cd.DisasterType.ToString())) select cd; kmlData = countyDisasters.Select<CountyDisasterView, KMLData>(x => new KMLData() { Amount = x.ProjectAmount, Disaster = x.DisasterType, RegionIdentifier = x.StateCounty, Year = x.DisasterYear }); geometry = countyDisasters.Select<CountyDisasterView, KMLGeometry>(x => new KMLGeometry() { RegionIdentifier = x.StateCounty, RegionName = x.name, Color = x.StateColor, Geometry = x.Geometry }); } kml = ParseEngine.GetKMZ(geometry, kmlData) ; } return kml; }