예제 #1
0
        public async Task <IList <Photo> > GetPhotos(int skip, int count)
        {
            var photos = await _repository.FetchAsync(skip, count);

            if (photos == null || photos.Count == 0)
            {
                return(new List <Photo>());
            }

            var photosList = new List <Photo>();

            foreach (var photo in photos)
            {
                UserDao         user        = null;
                UserImageUrlDao profileImgs = null;

                if (!string.IsNullOrEmpty(photo.UserId))
                {
                    user = await _userRepository.GetAsync(photo.UserId);

                    profileImgs = await _userImageUrlRepository.GetAsync(photo.UserId);
                }

                var photoUrls = await _photoUrlRepository.GetAsync(photo.Id);

                photosList.Add(PhotoReponseConvertor.ConvertDataToPhoto(photo, user, profileImgs, photoUrls));
            }

            return(photosList);
        }
예제 #2
0
        public static Photo ConvertDataToPhoto(PhotoDao photo, UserDao user, UserImageUrlDao imgUrls, PhotoUrlDao urls)
        {
            var photoData = new Photo();

            photoData.Id          = photo.Id;
            photoData.Create      = photo.CreateDate;
            photoData.Update      = photo.UpdateDate;
            photoData.LikedByUser = photo.LikedByUser;
            photoData.Likes       = photo.Likes;
            photoData.Description = photo.Description;

            if (user != null)
            {
                var userData = new User();
                userData.Id   = user.Id;
                userData.Name = user.Name;

                if (imgUrls != null)
                {
                    var profileImgData = new ProfileImageModel();
                    profileImgData.Large  = imgUrls.Large;
                    profileImgData.Medium = imgUrls.Medium;
                    profileImgData.Small  = imgUrls.Small;

                    userData.ProfileImages = profileImgData;
                }

                photoData.User = userData;
            }

            if (urls != null)
            {
                var photoUrlData = new Url();
                photoUrlData.Raw     = urls.Raw;
                photoUrlData.Regular = urls.Regular;
                photoUrlData.Small   = urls.Small;
                photoUrlData.Thumb   = urls.Thumb;

                photoData.Urls = photoUrlData;
            }

            return(photoData);
        }
예제 #3
0
        public static UserImageUrlDao ConvertUserPhotoToUserImageUrlDao(Photo photo)
        {
            if (photo.User == null)
            {
                return(null);
            }

            var userDao = new UserImageUrlDao();

            userDao.Id = photo.User.Id;

            if (photo.User.ProfileImages != null)
            {
                userDao.Large  = photo.User.ProfileImages.Large;
                userDao.Medium = photo.User.ProfileImages.Medium;
                userDao.Small  = photo.User.ProfileImages.Small;
            }

            return(userDao);
        }
예제 #4
0
        public async Task <Photo> GetPhoto(string id)
        {
            var photo = await _repository.GetAsync(id);

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

            UserDao         user        = null;
            UserImageUrlDao profileImgs = null;

            if (!string.IsNullOrEmpty(photo.UserId))
            {
                user = await _userRepository.GetAsync(photo.UserId);

                profileImgs = await _userImageUrlRepository.GetAsync(photo.UserId);
            }

            var photoUrls = await _photoUrlRepository.GetAsync(photo.Id);

            return(PhotoReponseConvertor.ConvertDataToPhoto(photo, user, profileImgs, photoUrls));
        }