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));
        }
Exemplo n.º 2
0
 public async Task <IActionResult> AddGeographicalDistance([FromBody] AddGeographicalDistanceRequest request)
 {
     return(await ExecuteServiceAsync(() => _geographicalDistanceService.AddGeographicalDistanceAsync(request)));
 }