Exemplo n.º 1
0
        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
                });
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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));
            }
        }