// 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); }
// 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); }
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); }
// 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); }