-
Notifications
You must be signed in to change notification settings - Fork 0
/
BookQuery.cs
101 lines (86 loc) · 2.91 KB
/
BookQuery.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace Library
{
public class BookQuery
{
public static void Author(List<Book> books)
{
Console.WriteLine("Enter author name: ");
var authorName = Console.ReadLine();
var filter = books.Where(b => b.Author.ToLower().Contains(authorName.ToLower()))
.GroupBy(b => b.Author)
.Take(5);
if (filter.Count() >= 1)
{
foreach (var book in filter)
{
Console.WriteLine(book.Key);
foreach (var item in book)
{
Console.WriteLine($"\t {item.Title} : {item.PublicationDate.ToShortDateString()}");
}
}
}
else
{
Console.WriteLine($"Author '{authorName}' not found.");
}
}
public static void Year(List<Book> books)
{
Console.WriteLine("Enter publication year: ");
var year = int.Parse(Console.ReadLine());
var filter = books.Where(b => b.PublicationDate.Year == year)
.GroupBy(b => b.Author)
.Take(5);
if (filter.Count() >= 1)
{
foreach (var book in filter)
{
Console.WriteLine(book.Key);
foreach (var item in book)
{
Console.WriteLine($"\t {item.Title} : {item.PublicationDate.ToShortDateString()}");
}
}
}
else
{
Console.WriteLine($"Year '{year}' not found.");
}
}
public static void Rating(List<Book> books)
{
Console.WriteLine("Enter mininum rating: ");
var rating = decimal.Parse(Console.ReadLine());
var filter = books.Where(b => b.AvarageRating >= rating)
.OrderByDescending(b => b.AvarageRating)
.GroupBy(b => b.Author)
.Take(100);
if (filter.Count() >= 1)
{
foreach (var book in filter)
{
Console.WriteLine(book.Key);
foreach (var item in book)
{
Console.WriteLine($"\t {item.Title} : {item.AvarageRating}");
}
}
}
else
{
Console.WriteLine($"Rating '{rating}' not found.");
}
}
public static int GetLastBookId(List<Book> books)
{
var lastBook = books.Last();
return lastBook.BookId;
}
}
}