Exemplo n.º 1
0
        /// <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);
                }
            }
        }
Exemplo n.º 2
0
        /// <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());
        }
Exemplo n.º 3
0
        /// <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());
        }
Exemplo n.º 4
0
        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);
                }
            }
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        /// <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);
        }