public void Context_Returns_Correct_Result_For_Users_And_Books() { //Arrange using var context = new ELibraryContext(_options); //Act int usersCount = context.Users.Count(); //int booksCount = context.Books.Count(); usersCount.Should().Be(2); //booksCount.Should().Be(4); }
public static void SetupContext( DbContextOptions <ELibraryContext> options, Fixture fixture) { using var context = new ELibraryContext(options); int userId1 = fixture.Create <int>(); int userId2 = fixture.Create <int>(); User user1 = fixture.Build <User>() .With(x => x.Id, userId1) .Without(x => x.FavoriteBooks) .Without(x => x.BooksOnLoan) .Create(); User user2 = fixture.Build <User>() .With(x => x.Id, userId2) .Without(x => x.BooksOnLoan) .Without(x => x.FavoriteBooks) .Create(); string isbn1 = fixture.Create <string>(); string isbn2 = fixture.Create <string>(); string isbn3 = fixture.Create <string>(); string isbn4 = fixture.Create <string>(); Book book1 = fixture.Build <Book>() .With(x => x.ISBN, isbn1) .Without(x => x.BooksOnLoan) .Without(x => x.UseFavoriteBooks) .Create(); Book book2 = fixture.Build <Book>() .With(x => x.ISBN, isbn2) .Without(x => x.BooksOnLoan) .Without(x => x.UseFavoriteBooks) .Create(); Book book3 = fixture.Build <Book>() .With(x => x.ISBN, isbn3) .Without(x => x.BooksOnLoan) .Without(x => x.UseFavoriteBooks) .Create(); Book book4 = fixture.Build <Book>() .With(x => x.ISBN, isbn4) .Without(x => x.BooksOnLoan) .Without(x => x.UseFavoriteBooks) .Create(); context.Users.AddRange(user1, user2); context.SaveChanges(); }
public void GetFirstOrDefaultBy_Returns_Default_Result() { //Arrange using var context = new ELibraryContext(_options); var DataRepository = new DataRepository <Book>(context); var book = _fixture.Build <Book>() .Without(x => x.BooksOnLoan) .Without(x => x.UseFavoriteBooks) .Create(); //Act Book result = DataRepository.GetFirstOrDefaultBy(x => x.ISBN == book.ISBN); //Assert result.Should().BeNull(); }
public BooksController(ELibraryContext context) { _context = context; }
public void Dispose() { using var context = new ELibraryContext(_options); context.Database.EnsureDeleted(); }
public ReservationRepository(ELibraryContext context) { _context = context; }
public static List <RecommendBook> GetRecomendations(ELibraryContext context, string userId) { Dictionary <string, Dictionary <int, float> > dRatings = new Dictionary <string, Dictionary <int, float> >(); List <Rating> ratings = context.Ratings.ToList(); var userRating = dRatings[userId] = new Dictionary <int, float>(); ratings.ForEach(r => { if (!dRatings.ContainsKey(r.UserId)) { dRatings[r.UserId] = new Dictionary <int, float>(); } dRatings[r.UserId][r.BookId] = (float)r.Value; }); Dictionary <string, float> diff = new Dictionary <string, float>(); for (int i = 0; i < dRatings.Count; ++i) { float sum = 0; int count = 0; for (int j = 0; j < userRating.Count; ++j) { var item = userRating.ElementAt(j); float rat = userRating[item.Key]; if (dRatings.ElementAt(i).Value.ContainsKey(item.Key)) { float rat2 = dRatings.ElementAt(i).Value[item.Key]; sum += Math.Abs(rat - rat2); count++; } } if (count >= 3) { diff[dRatings.ElementAt(i).Key] = sum / userRating.Count; } } CollaborativeFilter collaborativeFilter = new CollaborativeFilter(); int userCount = 0; for (int i = 0; i < dRatings.Count; ++i) { if (diff.ContainsKey(dRatings.ElementAt(i).Key) && diff[dRatings.ElementAt(i).Key] <= 2) { collaborativeFilter.AddRatings(dRatings.ElementAt(i).Value); userCount++; } } if (userCount < 3) { return(new List <RecommendBook>()); } IDictionary <int, float> Recomendations = collaborativeFilter.Recomend(userRating); return(context.Books.ToList().Where(b => Recomendations.ContainsKey(b.Id)).Select(b => new RecommendBook { Book = b, Rating = Recomendations[b.Id] }).Where(r => r.Rating >= 6).ToList()); }
public CommentRepository(ELibraryContext context) { _context = context; }
public StatusRepository(ELibraryContext context) { _context = context; }
public DataRepository(ELibraryContext context) { _context = context; _dbSet = _context.Set <TEntity>(); }
public UsersController(ELibraryContext context) { _context = context; }
public UserRepository(ELibraryContext context) { _context = context; }
public BookRepository(ELibraryContext context) { _context = context; }
public AuthorRepository(ELibraryContext context) { _context = context; }