Ejemplo n.º 1
0
        OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.ApplyConfiguration(new BookConfig());
            modelBuilder.ApplyConfiguration(new BookAuthorConfig());

            modelBuilder.HasDbFunction(() => UdfDefinitions.AverageVotesUdf(default(Guid)));
            modelBuilder.HasDbFunction(() => UdfDefinitions.AuthorsStringUdf(default(Guid)));
        }
Ejemplo n.º 2
0
 public static IQueryable <BookListDto> MapBookToDto(this IQueryable <Book> books)
 {
     return(books.Select(p => new BookListDto
     {
         BookId = p.BookId,
         Title = p.Title,
         PublishedOn = p.PublishedOn,
         ActualPrice = p.ActualPrice,
         OrgPrice = p.OrgPrice,
         PromotionalText = p.PromotionalText,
         AuthorsOrdered = UdfDefinitions.AuthorsStringUdf(p.BookId),
         ReviewsCount = p.Reviews.Count(),
         ReviewsAverageVotes = UdfDefinitions.AverageVotesUdf(p.BookId)
     }));
 }
Ejemplo n.º 3
0
        public void TestAuthorsStringDbFunctionOk()
        {
            //SETUP
            var options = this.CreateUniqueClassOptionsWithLogging <SqlDbContext>(
                log => _output.WriteLine(log.Message));

            using (var context = new SqlDbContext(options))
            {
                //ATTEMPT
                var aveReviews = context.Books
                                 .Select(p => UdfDefinitions.AuthorsStringUdf(p.BookId))
                                 .ToList();

                //VERIFY
                aveReviews.First().ShouldEqual("Author1, Author2");
            }
        }
Ejemplo n.º 4
0
 MapBookUdfsToDto(this IQueryable <Book> books)    //#A
 {
     return(books.Select(p => new UdfsBookListDto
     {
         BookId = p.BookId,
         Title = p.Title,
         PublishedOn = p.PublishedOn,
         EstimatedDate = p.EstimatedDate,
         OrgPrice = p.OrgPrice,
         ActualPrice = p.ActualPrice,
         PromotionText = p.PromotionalText,
         AuthorsOrdered = UdfDefinitions               //#B
                          .AuthorsStringUdf(p.BookId), //#B
         TagsString = UdfDefinitions                   //#B
                      .TagsStringUdf(p.BookId),        //#B
         ReviewsCount = p.Reviews.Count(),
         ReviewsAverageVotes =
             p.Reviews.Select(y =>
                              (double?)y.NumStars).Average(),
         ManningBookUrl = p.ManningBookUrl
     }));
 }