public List <FilmDetailModel> GetListFilmDetails(int filmId, int numberOfFilms) { var listFilmDetails = new List <FilmDetailModel>(); var listFilmDetailEntities = _filmOnlineRepository.GetAll() .Where(x => x.Id != filmId).Take(numberOfFilms).ToList(); var listCategoryOfFilms = _categoryOfFilmRepository.GetAll() .Where(x => listFilmDetailEntities.Any(i => i.Id == x.FilmOnlineId)); var listCategoryEntities = _filmCategoryRepository.GetAll() .Where(x => listCategoryOfFilms.Any(i => i.FilmCategoryId == x.Id)).ToList(); foreach (var item in listFilmDetailEntities) { var filmDetail = new FilmDetailModel(); filmDetail = item.MapTo <FilmDetailModel>(); var categoryNames = listCategoryEntities .Where(x => listCategoryOfFilms .Any(i => i.FilmOnlineId == item.Id)) .Select(x => x.Name); filmDetail.Categories = string.Join(", ", categoryNames); filmDetail.Date = item.ReleaseDate.Value.ToString("dd MMMM yyyy"); listFilmDetails.Add(filmDetail); } return(listFilmDetails); }
public void NewFilm_InsertOrUpdate_FilmAdded() { var film = new FilmDetailModel() { Id = Guid.Empty, OriginalName = "A", Genre = GenreEnum.Action, CzechName = "B", TitleFotoUrl = "titlefoto.png", Description = "A film!", Country = "Murica", Reviews = new List <ReviewListModel>(), Actors = new List <ActedInFilmDetailModel>(), Directors = new List <DirectedFilmDetailModel>() }; using var dbxAssert = _dbContextFactory.CreateDbContext(); film = _filmRepositorySUT.InsertOrUpdate(film); var filmFromDb = dbxAssert.Films.Single(i => i.Id == film.Id); var film2 = FilmMapper.MapToDetailModel(filmFromDb); Assert.Equal(film, film2, FilmDetailModel.FilmDetailModelComparer); Assert.Equal(film.Reviews, film2.Reviews, ReviewListModel.ReviewListModelComparer); Assert.Equal(film.Actors, film2.Actors, ActedInFilmDetailModel.ActedInFilmDetailModelComparer); Assert.Equal(film.Directors, film2.Directors, DirectedFilmDetailModel.DirectedFilmDetailModelComparer); }
public static FilmEntity MapToEntity(FilmDetailModel detailModel, IEntityFactory entityFactory) { var entity = (entityFactory ??= new EntityFactory()).Create <FilmEntity>(detailModel.Id); entity.Id = detailModel.Id; entity.OriginalName = detailModel.OriginalName; entity.CzechName = detailModel.CzechName; entity.Genre = (GenreEnum)detailModel.Genre; entity.TitleFotoUrl = detailModel.TitleFotoUrl; entity.Country = detailModel.Country; entity.Duration = detailModel.Duration; entity.Description = detailModel.Description; if (detailModel.Reviews != null) { entity.Reviews = detailModel.Reviews .Select(model => ReviewMapper.MapToEntity(model, entityFactory)).ToList(); } if (detailModel.Actors != null) { entity.Actors = detailModel.Actors .Select(model => ActedInFilmMapper.MapToEntity(model, entityFactory)).ToList(); } if (detailModel.Directors != null) { entity.Directors = detailModel.Directors .Select(model => DirectedFilmMapper.MapToEntity(model, entityFactory)).ToList(); } return(entity); }
public void Insert_NewFilmWithActor() { var filmDetail = new FilmDetailModel() { OriginalName = "Resident Evil 5", CzechName = "Resident Evil 5", CountryOfOrigin = "USA", Description = "Film about apocalypse with zombies", ImageFilePath = "C:/users/photo/ResidentEvilPhoto", GenreOfFilm = Genre.ActionFilm, LengthInMinutes = new TimeSpan(1, 35, 0), Actors = new List <FilmActorListModel>() { new FilmActorListModel() { ActorId = DataSeeds.Actor_GarrethClark.Id } }, }; var returnedDetailModel = facadeTestUnit.Save(filmDetail); // TODO: FilmActorEntity ( transition table ) has still Id = Guid.Empty ( zeros ) // Synchronizing informations which are automatically assigned by EF during updating DB filmDetail.Id = returnedDetailModel.Id; filmDetail.Actors.ElementAt(0).Id = returnedDetailModel.Actors.ElementAt(0).Id; filmDetail.Actors.ElementAt(0).FilmId = returnedDetailModel.Actors.ElementAt(0).FilmId; filmDetail.Actors.ElementAt(0).ActorName = returnedDetailModel.Actors.ElementAt(0).ActorName; filmDetail.Actors.ElementAt(0).FilmName = returnedDetailModel.Actors.ElementAt(0).FilmName; Assert.NotNull(returnedDetailModel); Assert.Equal(filmDetail, returnedDetailModel, FilmDetailModel.FilmDetailModelComparer); }
public FilmDetailModel GetFilmDetail(int filmId) { var filmDetail = new FilmDetailModel(); var filmDetailEntity = _filmOnlineRepository.FirstOrDefault(x => x.Id == filmId); var listCategoryIdEntities = _categoryOfFilmRepository.GetAll() .Where(x => x.FilmOnlineId == filmId); var listCategoryNameEntities = _filmCategoryRepository.GetAll() .Where(x => listCategoryIdEntities.Any(i => i.FilmCategoryId == x.Id)).Select(x => x.Name).ToArray(); filmDetail = filmDetailEntity.MapTo <FilmDetailModel>(); filmDetail.Categories = string.Join(", ", listCategoryNameEntities); filmDetail.Date = filmDetailEntity.ReleaseDate.Value.ToString("dd MMMM yyyy"); return(filmDetail); }
public void SeedFilm_InsertOrUpdate_FilmUpdated() { var film = new FilmDetailModel() { Id = Seed.InterstellarFilm.Id, OriginalName = Seed.InterstellarFilm.OriginalName + "updated", }; film = _filmRepositorySUT.InsertOrUpdate(film); var film2 = _filmRepositorySUT.GetById(film.Id); Assert.Equal(film, film2, FilmDetailModel.FilmDetailModelComparer); Assert.Equal(film.Reviews, film2.Reviews, ReviewListModel.ReviewListModelComparer); Assert.Equal(film.Actors, film2.Actors, ActedInFilmDetailModel.ActedInFilmDetailModelComparer); Assert.Equal(film.Directors, film2.Directors, DirectedFilmDetailModel.DirectedFilmDetailModelComparer); }
public void Create_WithNonExistingItem_DoesNotThrow() { var model = new FilmDetailModel() { Id = Guid.Empty, OriginalName = "The Avengers", Country = "USA", CzechName = "Avengers", Description = "Marvelovka", Genre = GenreEnum.SciFi, TitleFotoUrl = "avangers", Reviews = new List <ReviewListModel>(), Actors = new List <ActedInFilmDetailModel>(), Directors = new List <DirectedFilmDetailModel>() }; var returnedModel = _filmRepositorySUT.InsertOrUpdate(model); Assert.NotNull(returnedModel); }
// // GET: /Film/View/id public ActionResult View(int?ID) { if (ID == null) { return(RedirectToAction("Home", "HomePage")); } int filmId = ID ?? 1; FilmDAO fiDao = new FilmDAO(); AccountDAO accDao = new AccountDAO(); CategoryDAO cDao = new CategoryDAO(); CommentDAO commentDao = new CommentDAO(); FilmDetailModel model = new FilmDetailModel { ListCategory = cDao.GetAllCategory(), Account = null, Film = fiDao.GetDetailAFilm(filmId), ListComment = commentDao.GetAllCommentOfAFilm(filmId) }; return(View(model)); }
// // GET: /Film/View/id public ActionResult View(int?id) { if (id == null) { return(RedirectToAction("Home", "HomePage")); } int filmId = id ?? 1; FilmDAO fiDao = new FilmDAO(); AccountDAO accDao = new AccountDAO(); CategoryDAO cDao = new CategoryDAO(); CommentDAO commentDao = new CommentDAO(); FilmDetailModel model = new FilmDetailModel { ListCategory = cDao.GetAllCategory(), Account = null, Film = fiDao.GetDetailAFilm(filmId), ListComment = commentDao.GetAllCommentOfAFilm(filmId), TopFilm = fiDao.GetTopFilm(5), NewFilm = fiDao.GetTopNewestFilm(5) }; fiDao.IncreaseViewCount(filmId);//increase viewcount return(View(model)); }