Esempio n. 1
0
        public async Task <IEnumerable <BookMobileLogDto> > ReturnBookAsync(BookMobileReturnDto bookDto)
        {
            var booksToReturn = await _bookLogDbSet
                                .Include(b => b.BookOffice)
                                .Include(b => b.BookOffice.Book)
                                .Include(b => b.ApplicationUser)
                                .Where(b => b.BookOffice.Book.Code == bookDto.Code &&
                                       b.OrganizationId == bookDto.OrganizationId &&
                                       b.Returned == null &&
                                       b.BookOffice.OfficeId == bookDto.OfficeId)
                                .Select(MapBookToBookMobileLogDto())
                                .ToListAsync();

            _serviceValidator.ThrowIfThereIsNoBookToReturn(booksToReturn.Any());

            if (booksToReturn.Count > 1)
            {
                return(booksToReturn);
            }

            await ReturnSpecificBookAsync(booksToReturn.First().LogId);

            return(null);
        }