public async Task <AddGeographicalDistanceResponse> AddGeographicalDistanceAsync(AddGeographicalDistanceRequest request) { var response = new AddGeographicalDistanceResponse(); double rlat1 = Math.PI * double.Parse(request.sLatitude) / 180; double rlat2 = Math.PI * double.Parse(request.eLatitude) / 180; double theta = double.Parse(request.sLongitude) - double.Parse(request.eLongitude); double rtheta = Math.PI * theta / 180; double dist = Math.Sin(rlat1) * Math.Sin(rlat2) + Math.Cos(rlat1) * Math.Cos(rlat2) * Math.Cos(rtheta); dist = Math.Acos(dist); dist = dist * 180 / Math.PI; dist = dist * 60 * 1.1515; response.Calculation = (dist * 1.609344).ToString(); var currentUserId = _userService.GetCurrentUserId(); var geographicalDistance = new GeographicalDistance(); geographicalDistance.UserId = currentUserId; geographicalDistance.Calculation = double.Parse(response.Calculation); _geographicalDistances.Add(geographicalDistance); await _unitOfWork.SaveChangesAsync(); return(response.ReturnWithCode(AuthenticationMessageHelper.Code.AddGeographicalDistanceSuccess.Value(), AuthenticationMessageHelper.ResponseMessages)); }
public async Task <IActionResult> AddGeographicalDistance([FromBody] AddGeographicalDistanceRequest request) { return(await ExecuteServiceAsync(() => _geographicalDistanceService.AddGeographicalDistanceAsync(request))); }