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