/// <summary> /// IDで検索して保存されているデータを返す /// </summary> /// <param name="id"></param> /// <returns></returns> public Photo FindBy(string id) { // TODO: DBプログラミング講座で実装 using (Domain.Model.EF.PhotoRepositoryEntities entities = new Domain.Model.EF.PhotoRepositoryEntities()) { // IDで検索 Guid guid; var targetData = entities.M_PHOTO.Find(Guid.TryParse(id, out guid) ? (Guid?)guid : null); // 検索結果がある場合はPhotoを生成する if (targetData != null) { // Albumがある場合 if (targetData.AlbumId != null) { return(new Photo(targetData.Id.ToString(), new File(targetData.FilePath), targetData.IsFavorite, targetData.AlbumId.ToString(), albumRepository.FindBy(targetData.AlbumId.ToString()))); } // ない場合 else { return(new Photo(targetData.Id.ToString(), new File(targetData.FilePath), targetData.IsFavorite)); } } // 検索結果がない場合はnullを返す else { return(null); } } }
/// <summary> /// 全フォトリストの生成 /// </summary> /// <returns></returns> private IQueryable <Photo> FindAll() { List <Photo> Photos = new List <Photo>(); using (Domain.Model.EF.PhotoRepositoryEntities entities = new Domain.Model.EF.PhotoRepositoryEntities()) { var entries = entities.M_PHOTO.Select(e => e); foreach (var p in entries) { Photos.Add(new Photo(p.Id.ToString(), new File(p.FilePath), p.IsFavorite, p.AlbumId.ToString(), albumRepository.FindBy(p.AlbumId.ToString()))); } } return(Photos.AsQueryable()); }
/// <summary> /// 全アルバムリストの生成 /// </summary> /// <returns></returns> private IQueryable <Album> FindAll() { List <Album> albums = new List <Album>(); using (Domain.Model.EF.PhotoRepositoryEntities entities = new Domain.Model.EF.PhotoRepositoryEntities()) { var entries = entities.M_ALBUM.Select(e => e); foreach (var p in entries) { albums.Add(new Album(p.Id.ToString(), p.Name, p.Description)); } } return(albums.AsQueryable()); }
public Album FindBy(string id) { // TODO: DBプログラミング講座で実装 using (Domain.Model.EF.PhotoRepositoryEntities entities = new Domain.Model.EF.PhotoRepositoryEntities()) { // IDで検索 Guid guid; var targetData = entities.M_ALBUM.Find(Guid.TryParse(id, out guid) ? (Guid?)guid : null); // 検索結果がある場合はAlbumを生成する if (targetData != null) { return(new Album(targetData.Id.ToString(), targetData.Name, targetData.Description)); } // 検索結果がない場合はnullを返す else { return(null); } } }
public Photo Store(Photo entity) { // TODO: DBプログラミング講座で実装 using (Domain.Model.EF.PhotoRepositoryEntities entities = new Domain.Model.EF.PhotoRepositoryEntities()) { // IDで検索して存在しない場合は新規保存してからReturnする if (Exists(entity) == false) { Guid guid; // データ定義 var productData = new Domain.Model.EF.M_PHOTO() { Id = Guid.Parse(entity.Id), FilePath = entity.File.FilePath, IsFavorite = entity.IsFavorite, AlbumId = Guid.TryParse(entity.AlbumId, out guid) ? (Guid?)guid : null, }; // データ代入 entities.M_PHOTO.Add(productData); } // 存在していた場合は更新してからReturnする else { // 検索対象のデータを取得 var targetData = entities.M_PHOTO.Find(Guid.Parse(entity.Id)); // 更新する Guid guid; targetData.FilePath = entity.File.FilePath; targetData.IsFavorite = entity.IsFavorite; targetData.AlbumId = Guid.TryParse(entity.AlbumId, out guid) ? (Guid?)guid : null; } // 変更内容反映 entities.SaveChanges(); } return(entity); }
/// <summary> /// データベースに保存する /// </summary> /// <param name="entity">保存するアルバムデータ(Album)</param> /// <returns>保存するアルバムデータ(Album)</returns> public Album Store(Album entity) { // TODO: DBプログラミング講座で実装 using (Domain.Model.EF.PhotoRepositoryEntities entities = new Domain.Model.EF.PhotoRepositoryEntities()) { // IDで検索して存在しない場合は新規保存してからReturnする if (FindBy(entity.Id) == null) { // データ定義 var productData = new Domain.Model.EF.M_ALBUM() { Id = Guid.Parse(entity.Id), Name = entity.Name, Description = entity.Description, }; // データ代入 entities.M_ALBUM.Add(productData); } // 存在していた場合は更新してからReturnする else { // 検索対象のデータを取得 var targetData = entities.M_ALBUM.Find(Guid.Parse(entity.Id)); // 更新する targetData.Name = entity.Name; targetData.Description = entity.Description ?? null; } // 変更内容反映 entities.SaveChanges(); } return(entity); }