Beispiel #1
0
        private IEnumerable <Coordinates> getUserCoordinates(string accessToken, int id)
        {
            var user = context.GetUserById(id);

            if (user == null || user.StartCoordinates == null || user.StartCoordinates.Count == 0)
            {
                IEnumerable <Coordinates> coordinates = stravaClient.getAllUserCoordinatesById(accessToken, id);

                //Activities without a valid location cannot be mapped
                coordinates = from c in coordinates
                              where !(c.Longitude == null || c.Longitude == null)
                              select c;

                if (user == null)
                {
                    user = new User()
                    {
                        StartCoordinates = coordinates.ToList(),
                        UserId           = id,
                        LastDownload     = DateTime.Now.Date
                    };
                    context.Add(user);
                    context.SaveChanges();
                }
                else
                {
                    //Update UserId if it is not valid
                    if (user.UserId <= 0 && user.UserId != id)
                    {
                        user.UserId = id;
                    }

                    addCoordinates(user, coordinates);
                }
            }
            else
            {
                var latestCoordinates = stravaClient.getUserCoordinatesByIdAfter(accessToken, user.LastDownload);
                addCoordinates(user, latestCoordinates);
            }

            return(user.StartCoordinates);
        }
        public ActionResult Add(double?xCoord, double?yCoord)
        {
            Point newPoint = new Point {
                X = xCoord ?? 0, Y = yCoord ?? 0
            };
            bool pointAdded = _repo.Add(newPoint);

            if (pointAdded)
            {
                _logger.Info("new point added");
            }

            return(RedirectToAction("Index", "Home", _repo.GetAll()));
        }