public static IEnumerable <string> Parse(IEnumerable <CustomerGEOItem> items) { var geoLocator = new GeoLocator(); var customers = items.GroupBy(x => x.customerid); var inserts = customers.Select(g => { var customer = g.First(); var customerAddress = geoLocator.GetCoordinatesAsync(customer.address, customer.city, customer.state, customer.postalcode, customer.country).Result; var employeeAddress = geoLocator.GetCoordinatesAsync(customer.employeeaddress, customer.employeecity, customer.employeestate, customer.employeepostal, customer.employeecountry).Result; var template = $@"UPDATE CUSTOMER SET LOCATION = {BingAddresToSDO_POINT_TYPE(customerAddress)}, ROADTOEMPLOYEE = {BingPointsToLine(customerAddress, employeeAddress)}, X = {customerAddress.Coordinates.Longitude.ToDotted()}, Y = {customerAddress.Coordinates.Latitude.ToDotted()} WHERE CUSTOMERID = {g.Key};"; return(template); }); inserts = inserts.Append("commit; \r\n").Append("exit;"); inserts = inserts.Prepend("SET SQLBLANKLINES ON;"); return(inserts); }
public static IEnumerable <string> Parse(IEnumerable <EmployeeGEOItem> items) { var geoLocator = new GeoLocator(); var inserts = items.Select(x => { var employeeAddress = geoLocator.GetCoordinatesAsync(x.address, x.city, x.state, x.postalcode, x.country).Result; //var template = @$"UPDATE EMPLOYEE SET WORKINGAREA = {BingPointToCircle(employeeAddress, RADIUS)}, // X = {employeeAddress.Coordinates.Longitude.ToDotted()}, // Y = {employeeAddress.Coordinates.Latitude.ToDotted()}, // radius = {RADIUS} // WHERE EMPLOYEEID = {x.employeeid};"; var xx = employeeAddress.Coordinates.Longitude; var y = employeeAddress.Coordinates.Latitude; var template = $@"UPDATE EMPLOYEE SET WORKINGAREA = SDO_GEOMETRY( 2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1,1003,4), SDO_ORDINATE_ARRAY({xx-RADIUS},{y},{xx},{y+RADIUS},{xx+RADIUS},{y}) ), X = {employeeAddress.Coordinates.Longitude.ToDotted()}, Y = {employeeAddress.Coordinates.Latitude.ToDotted()}, radius = {RADIUS} WHERE EMPLOYEEID = {x.employeeid};"; return(template); }); inserts = inserts.Append("commit; \r\n").Append("exit;"); inserts = inserts.Prepend("SET SQLBLANKLINES ON;"); return(inserts); }