Esempio n. 1
0
        public IActionResult Edit(int id, [Bind("Id,MemberId,BookId,ReturnByDate")] LendingRecord lendingRecord)
        {
            if (id != lendingRecord.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(lendingRecord);
                    _context.SaveChanges();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!LendingRecordExists(lendingRecord.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["BookId"]   = new SelectList(_context.Book, "Id", "Id", lendingRecord.BookId);
            ViewData["MemberId"] = new SelectList(_context.Member, "Id", "Id", lendingRecord.MemberId);
            return(View(lendingRecord));
        }
Esempio n. 2
0
 public IActionResult Create([Bind("Id,MemberId,BookId,ReturnByDate")] LendingRecord lendingRecord)
 {
     if (ModelState.IsValid)
     {
         _context.Add(lendingRecord);
         _context.SaveChanges();
         return(RedirectToAction(nameof(Index)));
     }
     ViewData["BookId"]   = new SelectList(_context.Book, "Id", "Id", lendingRecord.BookId);
     ViewData["MemberId"] = new SelectList(_context.Member, "Id", "Id", lendingRecord.MemberId);
     return(View(lendingRecord));
 }
Esempio n. 3
0
        public Task <OperationResult <LendingRecord> > CheckoutAsync(Lender lender, Book item, DateTime to)
        {
            var record = new LendingRecord
            {
                From     = DateTime.Now,
                To       = DateTime.Now.AddDays(14),
                Lender   = lender,
                Book     = item,
                Returned = null
            };

            return(_lendingRepository.CreateAsync(record));
        }
Esempio n. 4
0
        public async Task <OperationResult <LendingRecord> > Lend(int bookId, int lenderId, DateTime @from, DateTime to)
        {
            var bookResult = await _bookRepository.GetAsync(bookId);

            if (!bookResult.Success)
            {
                return(new OperationResult <LendingRecord>("Book not found!", bookResult.ErrorMessages));
            }

            var lenderResult = await _lenderRepository.GetAsync(lenderId);

            if (!lenderResult.Success)
            {
                return(new OperationResult <LendingRecord>("Lender not found!", lenderResult.ErrorMessages));
            }

            var book   = bookResult.Entity;
            var record = new LendingRecord
            {
                From     = @from,
                To       = to,
                BookId   = bookId,
                LenderId = lenderId
            };

            var createResult = await _lendingRepository.CreateAsync(record);

            if (!createResult.Success)
            {
                return(new OperationResult <LendingRecord>("Creation of lending record failed!", createResult.ErrorMessages));
            }

            book.IsAvailable = false;
            var updateResult = await _bookRepository.UpdateAsync(book);

            if (!updateResult.Success)
            {
                return(new OperationResult <LendingRecord>("Updating book availability failed!", updateResult.ErrorMessages));
            }

            return(createResult);
        }
Esempio n. 5
0
 public async Task UpdateAsync(LendingRecord record)
 {
     await DocumentStore.UpdateAsync(record);
 }