HoneyBadgerBusinessLayer.HoneyBadgerSvc.GetData C# (CSharp) 메소드

GetData() 공개 메소드

public GetData ( string disasterType, string disasterYear, string regionLevel ) : System.Xml.Linq.XDocument
disasterType string
disasterYear string
regionLevel string
리턴 System.Xml.Linq.XDocument
        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;
        }

Usage Example

        // GET api/<controller>/val
        public string Get(string disasterType, string disasterYear, string regionLevel)
        {
            HoneyBadgerSvc service = new HoneyBadgerSvc();
            XDocument kml = service.GetData(disasterType, disasterYear, regionLevel);

            //this line of code is for a workaround due the difficulty to expose a pulicly accessible URL for google.
            try
            {
                kml.Save(@"\\doepamsutl1\C$\test\testKML3.kml", SaveOptions.None);
            }
            catch
            {}
            return kml.ToString();
        }