/
zykovad
/
PIR_Lab1_E-Library
Обзор
Документация
Войти
/
zykovad
/
PIR_Lab1_E-Library
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
DataStorage/v2/Data.cs
209 строк
8 KB
Darya
Done lab 2
17 окт 2025, 22:38
17 окт 2025, 22:38
38ce9ac
Код
Авторство
О чём код?
using libraryAPI.Entities.v2; namespace libraryAPI.DataStorage.v2 { public class Data { public List<Author> Authors { get; set; } public List<Book> Books { get; set; } public List<User> Users { get; set; } public List<Rental> Rentals { get; set; } public List<Author_Book> AuthorBooks { get; set; } public List<Review> Reviews { get; set; } public Dictionary<string, object> IdempotencyCache { get; set; } = new(); public Data() { Authors = new List<Author> { new Author { Id = 1, Name = "Фёдор", Surname = "Достоевский", Patronymic = "Михайлович", Bio = "Русский писатель, мыслитель и философ, автор романов «Преступление и наказание», «Братья Карамазовы»." }, new Author { Id = 2, Name = "Лев", Surname = "Толстой", Patronymic = "Николаевич", Bio = "Один из величайших русских писателей, автор «Войны и мира» и «Анны Карениной»." }, new Author { Id = 3, Name = "Джордж", Surname = "Оруэлл", Patronymic = "", Bio = "Британский писатель и журналист, автор антиутопий «1984» и «Скотный двор»." }, new Author { Id = 4, Name = "Рэй", Surname = "Брэдбери", Patronymic = "", Bio = "Американский писатель-фантаст, автор романов «451 градус по Фаренгейту» и «Марсианские хроники»." } }; Books = new List<Book> { new Book { Id = 1, Title = "Преступление и наказание", ISBN = "978-5-389-07413-0", Genre = "Классика", Description = "Роман о бедном студенте Родионе Раскольникове, который решает убить старуху-процентщицу.", PublicationYear = 1866, Publisher = "Азбука" }, new Book { Id = 2, Title = "Война и мир", ISBN = "978-5-389-07419-2", Genre = "Исторический роман", Description = "Эпопея о жизни русского общества во время Отечественной войны 1812 года.", PublicationYear = 1869, Publisher = "Эксмо" }, new Book { Id = 3, Title = "1984", ISBN = "978-0-452-28423-4", Genre = "Антиутопия", Description = "История тоталитарного общества, где Большой Брат следит за каждым.", PublicationYear = 1949, Publisher = "Penguin Books" }, new Book { Id = 4, Title = "451 градус по Фаренгейту", ISBN = "978-0-7432-4722-1", Genre = "Фантастика", Description = "Общество будущего, где книги запрещены и сжигаются пожарными.", PublicationYear = 1953, Publisher = "Simon & Schuster" }, new Book { Id = 5, Title = "Анна Каренина", ISBN = "978-5-389-07417-8", Genre = "Роман", Description = "История любви и трагедии Анны Карениной на фоне высшего общества Петербурга.", PublicationYear = 1877, Publisher = "Азбука" } }; AuthorBooks = new List<Author_Book> { new Author_Book { AuthorId = 1, BookId = 1 }, // Достоевский - Преступление и наказание new Author_Book { AuthorId = 2, BookId = 2 }, // Толстой - Война и мир new Author_Book { AuthorId = 2, BookId = 5 }, // Толстой - Анна Каренина new Author_Book { AuthorId = 3, BookId = 3 }, // Оруэлл - 1984 new Author_Book { AuthorId = 4, BookId = 4 } // Брэдбери - 451 градус }; // Привяжем эти связи к объектам foreach (var ab in AuthorBooks) { var author = Authors.Find(a => a.Id == ab.AuthorId); var book = Books.Find(b => b.Id == ab.BookId); if (author != null && book != null) { ab.Author = author; ab.Book = book; author.AuthorBooks.Add(ab); book.AuthorBooks.Add(ab); } } Users = new List<User> { new User { Id = 1, Username = "Анна Иванова", Login = "anna", PasswordHash = "hash123", Role = "User" }, new User { Id = 2, Username = "Пётр Сидоров", Login = "petr", PasswordHash = "hash456", Role = "User" }, new User { Id = 3, Username = "Администратор", Login = "admin", PasswordHash = "adminhash", Role = "Admin" } }; Rentals = new List<Rental> { new Rental { Id = 1, UserId = 1, BookId = 1, RentalStart = DateTime.UtcNow.AddDays(-5), RentalFinish = DateTime.UtcNow.AddDays(10) }, new Rental { Id = 2, UserId = 1, BookId = 3, RentalStart = DateTime.UtcNow.AddDays(-30), RentalFinish = DateTime.UtcNow.AddDays(-10) }, new Rental { Id = 3, UserId = 2, BookId = 4, RentalStart = DateTime.UtcNow.AddDays(-2), RentalFinish = DateTime.UtcNow.AddDays(12) } }; Reviews = new List<Review> { new Review { Id = 1, BookId = 1, UserId = 1, Comment = "Великолепный роман!", Rating = 5, CreatedAt = DateTime.UtcNow.AddDays(-2) }, new Review { Id = 2, BookId = 2, UserId = 2, Comment = "Очень глубокая философия.", Rating = 4, CreatedAt = DateTime.UtcNow.AddDays(-1) } }; } } }