public async Task <ResultData <User> > SaveUserLocation(UserLocationInsertModel userLocation) { try { var userDetails = await _userRepository.GetUserGroupDetails(userLocation.UserID.GetValueOrDefault()); userLocation.GroupID = userDetails.Data.GroupID.GetValueOrDefault(); var result = await _userRepository.SaveUserLocation(userLocation); if (!result.Status) { return(new ResultData <User> { Status = false, Message = result.Message }); } // Get the next waypoint var waypointList = WayPoints.GetWayPointList(); var waypointDict = WayPoints.GetWayPointDict(); string currentKey = userLocation.Latitude + "" + userLocation.Longitude; int currentIndex = waypointDict[currentKey].Number; if (currentIndex + 1 < waypointList.Count) { userDetails.Data.UserGroup.NextLocation = waypointList[currentIndex + 1]; } else { userDetails.Data.UserGroup.NextLocation = waypointList[0]; } return(userDetails); } catch (Exception ex) { return(new ResultData <User> { Status = false, Message = ex.Message }); } }
public async Task <ResultData> SaveUserLocation(UserLocationInsertModel userLocation) { ResultData resultData = new ResultData(); try { using (IDbConnection dbConnection = _connectionManager.getNew()) { string sql = @" INSERT INTO userlocations ( userid, groupid, latitude, longitude ) VALUES ( @UserID, @GroupID, @Latitude, @Longitude ); "; var result = await dbConnection.ExecuteAsync(sql, userLocation); if (result == 0) { resultData.Status = false; resultData.Message = "Failed"; return(resultData); } resultData.Status = true; resultData.Message = "Success"; return(resultData); } } catch (Exception ex) { resultData.Status = false; resultData.Message = ex.Message; return(resultData); } }
public async Task <IActionResult> SaveUserLocation([FromBody] UserLocationInsertModel userLocation) { try { var result = await _userService.SaveUserLocation(userLocation); if (!result.Status) { var errorResponse = ArshidResponse <Object> .SetResponse("AUA300", result.Message, null); return(new ObjectResult(errorResponse)); } var success = ArshidResponse <Object> .SetResponse("AUA100", result.Message, result.Data); return(new ObjectResult(success)); } catch (Exception ex) { var response = ArshidResponse <Object> .SetResponse("AUA300", ex.Message, null); return(new ObjectResult(response)); } }