示例#1
0
        public IActionResult Post(string bookID, string readerID, string lendDate)
        {
            int      bookIDParse   = 0;
            int      readerIDParse = 0;
            DateTime dateParse     = DateTime.MinValue;

            try
            {
                bookIDParse   = int.Parse(bookID);
                readerIDParse = int.Parse(readerID);
                dateParse     = DateTime.Parse(lendDate);
            }
            catch (Exception exception)
            {
                return(BadRequest(exception.Message));
            }

            var record = Context.BookReader.SingleOrDefault(x => x.BookID == bookIDParse);

            if (record != null)
            {
                return(StatusCode(409));
            }

            var bookReaderModel = new BookReaderModel()
            {
                BookID   = bookIDParse,
                ReaderID = readerIDParse,
                LendDate = dateParse
            };

            Context.BookReader.Add(bookReaderModel);
            Context.SaveChanges();
            return(StatusCode(201));
        }
示例#2
0
        /// <summary>
        ///     Akcja Create, tworząca nowy obiekt. Dostępna pod API: <strong>/api/lend</strong>.
        /// </summary>
        /// <param name="input">Model wypożyczenia książki</param>
        ///     Kod 400 jeśli walidacja danych nie powiodła się, kod 409 jeśli zasób już istnieje.
        ///     Kod 200 jeśli aktualizacja przebiegła pomyślnie.
        public IHttpActionResult Post(BookReaderModel input)
        {
            if (input.BookID == 0 || input.ReaderID == 0)
            {
                return(StatusCode(HttpStatusCode.BadRequest));
            }
            var record = Context.BookReader.SingleOrDefault(x => x.BookID == input.ID);

            if (record != null)
            {
                return(StatusCode(HttpStatusCode.Conflict));
            }
            var bookReaderModel = new BookReaderModel()
            {
                BookID   = input.ID,
                ReaderID = input.ReaderID,
                LendDate = input.LendDate
            };

            Context.BookReader.Add(bookReaderModel);
            Context.SaveChanges();
            return(StatusCode(HttpStatusCode.Created));
        }
示例#3
0
        private static void AddTestData(IServiceProvider serviceProvider)
        {
            var context = serviceProvider.GetRequiredService <LibraryDbContext>();

            context.Database.EnsureCreated();
            var book1 = new BookModel
            {
                Id         = "book1",
                Title      = "First Book Title",
                TotalPages = 200,
                Ratings    = 3.5,
                Type       = BookType.Novel,
                Label      = "First Book Label",
                Created    = DateTime.UtcNow,
            };
            var book2 = new BookModel
            {
                Id         = "book2",
                Title      = "Second Book Title",
                TotalPages = 100,
                Ratings    = 4.8,
                Type       = BookType.Fantasy,
                Label      = "Second Book Label",
                Created    = DateTime.UtcNow.AddDays(-5)
            };
            var book3 = new BookModel
            {
                Id         = "book3",
                Title      = "Third Book Title",
                TotalPages = 150,
                Ratings    = 2.5,
                Type       = BookType.Poem,
                Label      = "Third Book Label",
                Created    = DateTime.UtcNow.AddMonths(-1)
            };

            var chapter1 = new ChapterModel
            {
                Id     = "b1c1",
                Name   = "First Chapter",
                Book   = book1,
                BookId = "book1"
            };

            var chapter2 = new ChapterModel
            {
                Id     = "b1c2",
                Name   = "Second Chapter",
                Book   = book1,
                BookId = "book1"
            };

            var chapter3 = new ChapterModel
            {
                Id     = "b2c1",
                Name   = "First Chapter",
                Book   = book2,
                BookId = "book2"
            };

            var chapter4 = new ChapterModel
            {
                Id     = "b2c2",
                Name   = "Second Chapter",
                Book   = book2,
                BookId = "book2"
            };

            book1.Chapters = new List <ChapterModel>
            {
                chapter1, chapter2
            };

            book2.Chapters = new List <ChapterModel>
            {
                chapter3, chapter4
            };

            var author1 = new AuthorModel
            {
                Id    = "author1",
                Name  = "John Doe",
                Books = new List <BookModel> {
                    book1, book2, book3
                }
            };

            book1.Author   = author1;
            book1.AuthorId = author1.Id;
            book2.Author   = author1;
            book2.AuthorId = author1.Id;
            book3.Author   = author1;
            book3.AuthorId = author1.Id;

            var reader1 = new ReaderModel
            {
                Id   = "reader1",
                Name = "Jimmy"
            };

            var reader2 = new ReaderModel
            {
                Id   = "reader2",
                Name = "Vanessa"
            };

            var bookReader1 = new BookReaderModel
            {
                Book     = book1,
                BookId   = book1.Id,
                Reader   = reader1,
                ReaderId = reader1.Id
            };

            var bookReader2 = new BookReaderModel
            {
                Book     = book1,
                BookId   = book1.Id,
                Reader   = reader2,
                ReaderId = reader2.Id
            };

            var bookReader3 = new BookReaderModel
            {
                Book     = book2,
                BookId   = book2.Id,
                Reader   = reader2,
                ReaderId = reader2.Id
            };

            context.Books.Add(book1);
            context.Books.Add(book2);
            context.Books.Add(book3);
            context.Chapters.Add(chapter1);
            context.Chapters.Add(chapter2);
            context.Chapters.Add(chapter3);
            context.Chapters.Add(chapter4);
            context.Authors.Add(author1);
            context.Readers.Add(reader1);
            context.Readers.Add(reader2);

            context.BookReaders.Add(bookReader1);
            context.BookReaders.Add(bookReader2);
            context.BookReaders.Add(bookReader3);


            context.SaveChanges();
        }