public async Task <Response> MeasureDistance (Location location1, Location location2) { Response measureResponse; //check input coordinats is Double if (IsDouble(location1.Lat, location1.Long) && IsDouble(location2.Lat, location2.Long)) { double distance = GeoCalculator. GetDistance( double.Parse(location1.Lat), double.Parse(location1.Long), double.Parse(location2.Lat), double.Parse(location2.Long), 1); measureResponse = new MeasureResponse() { Location1 = location1, Location2 = location2, Distance = distance, Code = StatusCodes.Status200OK, Message = "Ok" }; return(measureResponse); } return(new Response() { Code = StatusCodes.Status500InternalServerError, Message = "Input Location Coordinates is Incorrect" }); }
public async Task <object> Measure(Measure measure) { var userName = string.Empty; if (HttpContext.User.Identity is ClaimsIdentity identity) { userName = identity.FindFirst(ClaimTypes.Name).Value; } if (!ModelState.IsValid) { return(new { Error = ModelState.Errors() });; } MeasureResponse result = await distanceMeasureDataProvider. MeasureDistance(measure.Location1, measure.Location2); if (result.Code != StatusCodes.Status200OK) { return(result); } await historyDataProvider.InsertHistory (new RequestHistory() { Date = DateTime.Now.ToShortDateString(), Locations = "{" + measure.Location1.Lat + "," + measure.Location1.Long + "} To {" + measure.Location2.Lat + "," + measure.Location2.Long + "}", Result = result.Distance + "", User = await userDataProvider.GetUserIfExist(userName) }); return(result); }
public async Task <MeasureResponse> MeasureDistance (Location location1, Location location2) { MeasureResponse measureResponse; if (IsDouble(location1.Latitude, location1.Longitude) && IsDouble(location2.Latitude, location2.Longitude)) { double distance = GeoCalculator. GetDistance( double.Parse(location1.Latitude), double.Parse(location1.Longitude), double.Parse(location2.Latitude), double.Parse(location2.Longitude), 1); measureResponse = new MeasureResponse() { Location1 = location1, Location2 = location2, Distance = distance, Code = StatusCodes.Status200OK, Message = "Ok" }; return(measureResponse); } else { } }
public async Task <Response> MeasureDistance (Location location1, Location location2) { Response measureResponse; try { //check input coordinats is Double if (IsDouble(location1.Lat, location1.Long) && IsDouble(location2.Lat, location2.Long)) { //get distance between two coordinates via "Geolocation.NetStandard" nuget pakage double distance = GeoCalculator. GetDistance( double.Parse(location1.Lat), double.Parse(location1.Long), double.Parse(location2.Lat), double.Parse(location2.Long), 1); //set result to response model measureResponse = new MeasureResponse() { Location1 = location1, Location2 = location2, Distance = distance, Code = StatusCodes.Status200OK, Message = "Ok" }; //return successfull result return(measureResponse); } //not suported data sended return(new Response() { Code = StatusCodes.Status415UnsupportedMediaType, Message = "Input Location Coordinates is Incorrect" }); } catch (Exception ex) { return(new Response() { Code = StatusCodes.Status500InternalServerError, Message = ex.Message }); } }
public Task <MeasureResponse> MeasureDistance (Location location1, Location location2) { MeasureResponse measureResponse; if (IsDouble(location1.Latitude, location1.Longitude) && IsDouble(location2.Latitude, location2.Longitude)) { double distance = GeoCalculator. GetDistance( double.Parse(location1.Latitude), double.Parse(location1.Longitude), double.Parse(location2.Latitude), double.Parse(location2.Longitude), 1); measureResponse = new MeasureResponse() { }; } }