/// <summary>
        /// 指定したディレクトリ直下のフォトのリストを返す
        /// </summary>
        /// <param name="folderPath"></param>
        /// <returns></returns>
        public IEnumerable <Photo> Execute(string folderPath)
        {
            var files          = _photoFileService.FindAllPhotoFilesFromDirectory(folderPath);
            var photosInFolder = new List <Photo>();

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

            var photos = _photoRepository.Find(allPhoto => allPhoto);

            foreach (var file in files)
            {
                var searchedPhoto = photos.SingleOrDefault(photo => photo.File.FilePath == file.FilePath);

                if (searchedPhoto != null)
                {
                    photosInFolder.Add(searchedPhoto);
                }
                else
                {
                    var photo = Photo.CreateFromFile(file, GetDateTime(file.FilePath));
                    photosInFolder.Add(photo);
                    _photoRepository.Store(photo);
                }
            }

            return(photosInFolder);
        }
예제 #2
0
        /// <summary>
        /// 指定したディレクトリ直下のフォトのリストを返す
        /// </summary>
        /// <param name="directoryName"></param>
        /// <returns></returns>
        public IEnumerable <Photo> Execute(string directoryName)
        {
            IEnumerable <Domain.Model.File> files = photoFileService.FindAllPhotoFilesFromDirectory(directoryName);
            List <Photo> photosInDirectory        = new List <Photo>();

            foreach (File file in files)
            {
                Func <IQueryable <Photo>, Photo> query = allPhotos =>
                {
                    foreach (Photo photo in allPhotos)
                    {
                        if (photo.File.FilePath == file.FilePath)
                        {
                            return(photo);
                        }
                    }

                    return(Photo.CreateFromFile(file));
                };

                Photo hitPhoto = photoRepository.Find(query);

                if (hitPhoto != null)
                {
                    photosInDirectory.Add(hitPhoto);
                }
                else
                {
                    photosInDirectory.Add(Photo.CreateFromFile(file));
                }
            }

            return(photosInDirectory);
        }
        [TestMethod] //テスト13
        public void 画像データを含まないディレクトリを受け取った場合空を返すこと()
        {
            // テストデータをどう与えるかなどはお任せします
            var result = service.FindAllPhotoFilesFromDirectory(@"\\CFS-01\HOME0\12810470\Desktop\ミニシステム開発\TestDummyPicture");

            Assert.AreEqual(0, result.Count());
        }
        public void 無い場合NULLが取得できること()
        {
            // テストデータをどう与えるかなどはお任せします
            var result = service.FindAllPhotoFilesFromDirectory("");

            // テストデータに応じたアサーション
            //if(result == null)
            //{
            Assert.AreEqual(null, result);
            //}
            //else
            //{
            //    Assert.AreNotEqual(null, result);
            //}
        }
예제 #5
0
        public IEnumerable <Photo> Execute(string filePath)
        {
            List <Photo>       photos = new List <Photo>();
            IEnumerable <File> files  = photoFileService.FindAllPhotoFilesFromDirectory(filePath);


            foreach (File file in files)
            {
                Func <IQueryable <Photo>, Photo> query = ((folderPhotos) =>
                {
                    return(folderPhotos
                           .Where(p => p.File.FilePath == file.FilePath)
                           .FirstOrDefault());
                });

                //Photo hitPhoto = repositoryMaster.FindPhoto(query);
                Photo hitPhoto = null;

                if (hitPhoto != null)
                {
                    photos.Add(hitPhoto);
                }
                else
                {
                    photos.Add(new Photo(file, GetFilmingDate(file.FilePath), new List <string>()));
                }
            }

            return(photos);
        }
예제 #6
0
        public void 指定されたフォルダの写真ファイルが取得できること()
        {
            // テストデータをどう与えるかなどはお任せします
            var result = service.FindAllPhotoFilesFromDirectory("TestDir");

            // テストデータに応じたアサーション
            string[] test = { @"TestDir\sample1.bmp", @"TestDir\sample2.bmp", @"TestDir\SubTestDir\sample3.bmp" };
            int      i    = 0;

            foreach (Domain.Model.File file in result)
            {
                Assert.AreEqual(file.FilePath, test[i]);
                i++;
            }

            //Assert.AreEqual(result.Count(), 0);
        }
예제 #7
0
        public async Task <IEnumerable <Photo> > Execute(string directory)
        {
            // 画像ファイルリスト生成
            var          photoFileList = service.FindAllPhotoFilesFromDirectory(directory);
            List <Photo> photos        = new List <Photo>();

            // ファイルパスからFindをして、既にcsvに存在するかどうかも調べたほうがよい?

            // フォトデータ生成
            foreach (var p in photoFileList)
            {
                var photo = Photo.CreateFromFile(p);
                await Task.Run(() =>
                {
                    photoRepository.Store(photo);
                });

                photos.Add(photo);
            }
            return(photos);
        }