Exemple #1
0
        public async Task <IActionResult> Save([FromBody] CalculateDistanceDto dto)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }


                var userId = _caller.Claims.Single(c => c.Type.Equals("id")).Value;

                var source      = new Point(dto.SourceX, dto.SourceY);
                var destination = new Point(dto.DestinationX, dto.DestinationY);

                var distance = source.Distance(destination);

                var userDistance = new Model.Geographical.UserDistance()
                {
                    Distance = distance, UserId = userId
                };

                // You can hust save data in sql database by use this parameter useInMemory = false

                var result = await _distanceService.Insert(userDistance);

                if (result != null)
                {
                    return(Ok());
                }

                return(StatusCode(500, "Internal Error"));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
        public async Task <IActionResult> Post(CalculateDistanceDto cDistanceDto)
        {
            var userId = HttpContext.User.Claims.FirstOrDefault().Value;

            if (userId != null)
            {
                //var currentUser = await _userManager.FindByNameAsync(userName);
                var distance = _unitOfWork.Distances.CalculateDistance(cDistanceDto.FirstLat, cDistanceDto.FirstLon, cDistanceDto.SecondLat, cDistanceDto.SecondLon, cDistanceDto.Type.ToUpper());
                var res      = _mapper.Map <Distance>(cDistanceDto);
                res.UsersId       = userId;
                res.FinalDistance = distance;


                _unitOfWork.Distances.Add(res);

                _unitOfWork.Complete();

                return(Ok(distance));
            }
            else
            {
                return(Unauthorized());
            }
        }