Пример #1
0
        // GET api/trip/5 - get trip by tripId
        public TripSM Get(int id)
        {
            //Get Id of current User
            var userId = User.Identity.GetUserId();

            //Get Data From DB
            var query = from t in db.Trips
                        where t.Id == id
                        select t;

            var result = query.FirstOrDefault <Trip>();

            TripSM trip = null;

            if (result != null)
            {
                //Check User Credentials
                IdentityHelper helper = new IdentityHelper();

                //check if private
                if (result.IsPrivate == true && helper.isOwner(userId, result.UserId) == false)
                {
                    return(null);
                }

                var isAuthorized = helper.isFriendOrOwner(userId, result.UserId);
                if (isAuthorized == false)
                {
                    return(null);
                }

                //Bind TrimSM Object and return
                trip           = new TripSM();
                trip.Title     = result.Title;
                trip.TripId    = result.Id;
                trip.UserId    = result.UserId;
                trip.isPrivate = result.IsPrivate;

                //Group Coordinates
                List <Photo>     groupPhotos = new List <Photo>(result.Photos);
                CoordinateHelper cHelper     = new CoordinateHelper();
                result.Photos = cHelper.GroupPhotosByCoordinates(groupPhotos);

                foreach (var item in result.Photos)
                {
                    trip.Coordinates.Add(new Coordinate
                    {
                        Latitude  = item.Latitude,
                        Longitude = item.Longitude
                    });
                }
            }

            return(trip);
        }
Пример #2
0
        // GET api/trip - Get latest Trip of active user
        public TripSM Get()
        {
            //Get Id of current User
            var userId = User.Identity.GetUserId();

            //Get Data From DB
            var query = from t in db.Trips
                        where t.UserId == userId
                        orderby t.CreationDate descending
                        select t;

            var    result   = query.FirstOrDefault <Trip>();
            TripSM lastTrip = null;

            if (result != null)
            {
                //Bind TrimSM Object and return
                lastTrip           = new TripSM();
                lastTrip.Title     = result.Title;
                lastTrip.TripId    = result.Id;
                lastTrip.UserId    = result.UserId;
                lastTrip.isPrivate = result.IsPrivate;

                //Group Coordinates
                List <Photo>     groupPhotos = new List <Photo>(result.Photos);
                CoordinateHelper cHelper     = new CoordinateHelper();
                result.Photos = cHelper.GroupPhotosByCoordinates(groupPhotos);

                foreach (var item in result.Photos)
                {
                    lastTrip.Coordinates.Add(new Coordinate
                    {
                        Latitude  = item.Latitude,
                        Longitude = item.Longitude
                    });
                }
            }

            return(lastTrip);
        }
Пример #3
0
        public IEnumerable <PhotoSM> Get(int Id, string latitude, string longitude)
        {
            //Get Id of current User
            var requestUserId = User.Identity.GetUserId();

            //Check User Credentials
            var queryTrip = from t in db.Trips
                            where t.Id == Id
                            select t;


            var tripResult = queryTrip.FirstOrDefault <Trip>();

            if (tripResult == null)
            {
                return(null);
            }

            IdentityHelper helper = new IdentityHelper();

            //check if private
            if (tripResult.IsPrivate == true && helper.isOwner(requestUserId, tripResult.UserId) == false)
            {
                return(null);
            }

            var isAuthorized = helper.isFriendOrOwner(requestUserId, queryTrip.FirstOrDefault <Trip>().UserId);

            if (isAuthorized == false)
            {
                return(null);
            }

            //Parse Longitude and Latitude
            double dLongitude = double.Parse(longitude.Replace(',', '.'), CultureInfo.InvariantCulture);
            double dLatitude  = double.Parse(latitude.Replace(',', '.'), CultureInfo.InvariantCulture);

            //Get Data From DB
            var queryPhotos = from ph in db.Photos
                              where ph.TripId == Id && ph.isDeleted == false
                              select ph;

            var result = queryPhotos.ToList <Photo>();

            //Group Coordinates
            CoordinateHelper cHelper = new CoordinateHelper();

            result = cHelper.GroupPhotosByCoordinates(result);

            List <PhotoSM> photos = null;

            if (result != null)
            {
                //Bind PhotoSM Object and return
                photos = new List <PhotoSM>();
                foreach (var item in result)
                {
                    if (item.Latitude == dLatitude && item.Longitude == dLongitude)
                    {
                        PhotoSM photo = new PhotoSM();
                        photo.PhotoId    = item.Id;
                        photo.TripId     = item.TripId;
                        photo.Coordinate = new Coordinate()
                        {
                            Latitude  = item.Latitude,
                            Longitude = item.Longitude
                        };

                        photos.Add(photo);
                    }
                }
            }

            return(photos);
        }
Пример #4
0
        // GET api/trips/abcd-dfdf-dfdf-dfd - get trips by userId
        public IEnumerable <TripSM> Get(string id)
        {
            //Get Id of current User
            var requestUserId = User.Identity.GetUserId();

            //Fixy Frosy
            if (id.Equals("xxx"))
            {
                id = requestUserId;
            }

            //Get Data From DB
            var query = from t in db.Trips
                        where t.UserId == id
                        select t;

            var result = query.ToList <Trip>();

            List <TripSM> trips = null;

            if (result != null)
            {
                //Check User Credentials
                IdentityHelper helper       = new IdentityHelper();
                var            isAuthorized = helper.isFriendOrOwner(requestUserId, id);
                if (isAuthorized == false)
                {
                    return(null);
                }

                //Bind TrimSM Object and return
                trips = new List <TripSM>();
                foreach (var item in result)
                {
                    //Check if trip is private
                    if (item.IsPrivate == true && helper.isOwner(requestUserId, item.UserId) == false)
                    {
                        continue;
                    }

                    TripSM trip = new TripSM();
                    trip.Title     = item.Title;
                    trip.TripId    = item.Id;
                    trip.UserId    = item.UserId;
                    trip.isPrivate = item.IsPrivate;

                    //Group Coordinates
                    List <Photo>     groupPhotos = new List <Photo>(item.Photos);
                    CoordinateHelper cHelper     = new CoordinateHelper();
                    item.Photos = cHelper.GroupPhotosByCoordinates(groupPhotos);

                    foreach (var photo in item.Photos)
                    {
                        trip.Coordinates.Add(new Coordinate
                        {
                            Latitude  = photo.Latitude,
                            Longitude = photo.Longitude
                        });
                    }

                    trips.Add(trip);
                }
            }

            return(trips);
        }