public JObject GetAreaInfluenceWeek([FromRoute] double longy, double lat) { string _selectString = "SELECT SUM(AREA) / 1000000 AS area FROM(SELECT DISTINCT ON(homezone) ST_Area(homezone.geom::geography) as AREA FROM \"MtcHomezones\" AS hz INNER JOIN \"Mtcs\" AS homezone ON homezone.id = hz.homezone INNER JOIN \"Mtcs\" AS zone ON zone.id = hz.zone WHERE ST_Contains(zone.geom, ST_SetSRID(ST_MakePoint(" + longy + " , " + lat + "), 4326))) s"; using (var conn = new NpgsqlConnection(connectionString)) { conn.Open(); using (var cmd = new NpgsqlCommand(_selectString, conn)) { using (var reader = cmd.ExecuteReader()) { List <AreaOfInfluenceDTO> areaOfInfluenceDtoList = new List <AreaOfInfluenceDTO>(); while (reader.Read()) { InterfaceDataReader dataReader = new DataReader(); AreaOfInfluenceDTO areaOfInfluenceDTO = dataReader.ReadAreaOfInfluenceDTO(reader); areaOfInfluenceDtoList.Add(areaOfInfluenceDTO); } IObjectConverter objConverted = new ObjectConverter(); var obj = objConverted.AreaOfInfluenceJson(areaOfInfluenceDtoList); return(obj); } } } }
public AreaOfInfluenceDTO ReadAreaOfInfluenceDTO(NpgsqlDataReader reader) { double area = reader.GetDouble(0); AreaOfInfluenceDTO areaOfInfluenceDTO = new AreaOfInfluenceDTO { Area = area }; return(areaOfInfluenceDTO); }