示例#1
0
        public void GetFlickrPhotoByCoordinate(double lng, double lat, string locationId)
        {
            PhotoCollection photos = _FlickrService.SearchPhotos(lng, lat);

            var photoList = photos.OrderBy(x => x.PhotoId).ToList();

            var photoByLocationList = _FlickrPhotoRepository.GetByLocationId(locationId);

            if (photoByLocationList.Any())
            {
                var maxPhotoId = photoByLocationList.Max(x => x.PhotoID);

                photoList = photoList.Where(x => double.Parse(x.PhotoId) > maxPhotoId).ToList();
            }

            List <FlickrPhoto> flickrPhotos = new List <FlickrPhoto>();

            foreach (var flickrPhoto in photoList)
            {
                FlickrPhoto photo = new FlickrPhoto
                {
                    FlickrPhotoID    = Guid.NewGuid().ToString(),
                    LocationID       = locationId,
                    DateUploaded     = (flickrPhoto.DateUploaded >= (DateTime)SqlDateTime.MinValue) ? flickrPhoto.DateUploaded : (DateTime?)null,
                    Description      = flickrPhoto.Description,
                    PhotoID          = double.Parse(flickrPhoto.PhotoId),
                    OwnerName        = flickrPhoto.OwnerName,
                    Title            = flickrPhoto.Title,
                    OriginalURL      = String.IsNullOrEmpty(flickrPhoto.OriginalUrl) ? flickrPhoto.LargeSquareThumbnailUrl : flickrPhoto.OriginalUrl,
                    LargeThumnailURL = flickrPhoto.LargeSquareThumbnailUrl
                };

                flickrPhotos.Add(photo);
            }

            _FlickrPhotoRepository.AddRange(flickrPhotos);
        }