public async Task <ActionResult <Publisher> > GetPublisherDetail(int id)
        {
            // eager loading
            //var publisher = _context.Publishers
            //                        .Include(pub => pub.Books)
            //                            .ThenInclude(book => book.Sales)
            //                        .Include(pub => pub.Users)
            //                            .ThenInclude(user => user.Job)
            //                        .Where(p => p.PubId == id)
            //                        .FirstOrDefault();

            // Explicit Loading

            var publisher = await _context.Publishers.SingleAsync(pub => pub.PubId == id);

            _context.Entry(publisher)
            .Collection(pub => pub.Users)
            .Query()
            .Where(usr => usr.FirstName.Equals("Mary"))
            .Load();
            _context.Entry(publisher)
            .Collection(pub => pub.Books)
            .Query()
            .Include(book => book.Sales)
            .Load();



            if (publisher == null)
            {
                return(NotFound());
            }

            return(publisher);
        }
示例#2
0
        public async Task <ActionResult <Publisher> > GetPublisherDetals(int id)
        {
            //***Eager Loading
            //var publisher = _context.Publisher
            //                                  .Include(pub => pub.Book)
            //                                       .ThenInclude(book => book.Sale)
            //                                  .Include(pub => pub.User)
            //                                        .ThenInclude(user => user.Job)
            //                                  .Where(pub => pub.PubId == id)
            //                                  .FirstOrDefault();


            //**Explicit Loading
            var publisher = await _context.Publisher.SingleAsync(pub => pub.PubId == id);

            _context.Entry(publisher)
            .Collection(pub => pub.User)
            .Query()
            .Where(user => user.EmailAddress.Contains("karin"))
            .Load();
            _context.Entry(publisher)
            .Collection(pub => pub.Book)
            .Query()
            .Include(book => book.Sale)
            .Load();



            if (publisher == null)
            {
                return(NotFound());
            }

            return(publisher);
        }
示例#3
0
        public async Task <ActionResult <Publisher> > GetPublisherDetails(string PublisherId)
        {
            //Eager Loading
            //var publisher = await _context.Publishers
            //                                .Include(pub => pub.Users)
            //                                .Include(pub => pub.Books)
            //                                    .ThenInclude(book => book.Sales)
            //                                .Where(pub => pub.PubId == id)
            //                                .FirstOrDefaultAsync();

            //Explicit Loading
            var publisher = await _context.Publishers.SingleAsync(pub => pub.PubId == Convert.ToInt32(PublisherId));

            _context.Entry(publisher)
            .Collection(pub => pub.Users)
            .Query()
            .Where(usr => usr.EmailAddress.Contains("karin"))
            .Load();

            _context.Entry(publisher)
            .Collection(pub => pub.Books)
            .Query()
            .Include(book => book.Sales)
            .Load();

            if (publisher == null)
            {
                return(NotFound());
            }

            return(publisher);
        }
        public async Task <ActionResult <Publisher> > GetPublisherDetails(int id)
        {
            //Eager loading
            //var publisher = _context.Publishers
            //                    .Include(pub => pub.Books)
            //                        .ThenInclude(books => books.Sales)
            //                    .Include(pub => pub.Users)
            //                    .Where(pub => pub.PubId == id)
            //                    .FirstOrDefault();

            //Explicit loading //we can add where condition on related objects
            var publisher = await _context.Publishers.SingleAsync(pub => pub.PubId == id);

            _context.Entry(publisher)
            .Collection(pub => pub.Users)
            .Query()
            .Where(user => user.JobId > 12)
            .Load();
            _context.Entry(publisher)
            .Collection(pub => pub.Books)
            .Query()
            .Include(book => book.Sales)
            .Load();

            if (publisher == null)
            {
                return(NotFound());
            }

            return(publisher);
        }
示例#5
0
        public async Task <ActionResult <Publisher> > GetPublisherDetails(int id)
        {
            // Eager loading

            /*var publisher = _context.Publisher
             *                  .Include(pub => pub.Book)
             *                      .ThenInclude(book => book.Sale)
             *                  .Include(pub => pub.User)
             *                      .ThenInclude(user => user.Role)
             *                  .Where(pub => pub.PubId == id)
             *                  .FirstOrDefault();
             */

            // Excplicit loading
            var publisher = await _context.Publisher.SingleAsync(pub => pub.PubId == id);

            // getting publisher users

            /*_context.Entry(publisher)
             *  .Collection(pub => pub.User)
             *  .Load();*/

            // getting a particular user
            _context.Entry(publisher)
            .Collection(pub => pub.User)
            .Query()
            .Where(usr => usr.EmailAddress.Contains("Karin"))
            .Load();

            // Getting books

            /* _context.Entry(publisher)
             *   .Collection(pub => pub.Book)
             *   .Load();*/

            // Getting books and sales
            _context.Entry(publisher)
            .Collection(pub => pub.Book)
            .Query()
            .Include(book => book.Sale)
            .Load();

            var user = await _context.User.SingleAsync(usr => usr.UserId == 1);

            _context.Entry(user)
            .Reference(usr => usr.Role)
            .Load();

            if (publisher == null)
            {
                return(NotFound());
            }

            return(publisher);
        }
        public async Task <IActionResult> PutPublisher(int id, Publisher publisher)
        {
            if (id != publisher.PubId)
            {
                return(BadRequest());
            }

            _context.Entry(publisher).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PublisherExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#7
0
        public async Task <IActionResult> PutStore(string id, Store store)
        {
            if (id != store.StoreId)
            {
                return(BadRequest());
            }

            _context.Entry(store).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StoreExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <IActionResult> PutBook([FromRoute] int id, [FromBody] Book book)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != book.BookId)
            {
                return(BadRequest());
            }

            _context.Entry(book).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BookExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#9
0
        public async Task <IActionResult> PutRole(short id, Role role)
        {
            if (id != role.RoleId)
            {
                return(BadRequest());
            }

            _context.Entry(role).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RoleExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#10
0
        public async Task <IActionResult> PutJob(short id, Job job)
        {
            if (id != job.JobId)
            {
                return(BadRequest());
            }

            _context.Entry(job).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!JobExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#11
0
        public async Task <IActionResult> PutBookAuthor(int id, BookAuthor bookAuthor)
        {
            if (id != bookAuthor.AuthorId)
            {
                return(BadRequest());
            }

            _context.Entry(bookAuthor).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BookAuthorExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#12
0
        public async Task <ActionResult <Publisher> > GetPublisherDetails(int id)
        {
            var publisher = await _context.Publishers.SingleAsync(pub => pub.PubId == id);

            _context.Entry(publisher)
            .Collection(pub => pub.Users)
            .Query()
            .Where(user => user.EmailAddress.Contains("karin"))
            .Load();

            _context.Entry(publisher)
            .Collection(pub => pub.Books)
            .Query()
            .Include(book => book.Sales)
            .Load();

            // var user = _context.Users.SingleAsync(usr => usr.UserId == 1);


            return(publisher);
        }
示例#13
0
        public async Task <ActionResult <Publisher> > GetPublisherExplicit(int id)
        {
            var publisher = await _context.Publishers.SingleAsync(p => p.PubId == id);

            _context.Entry(publisher)
            .Collection(p => p.Users)
            .Query()
            .Where(u => u.FirstName.Contains("Karin"))
            .Load();

            _context.Entry(publisher)
            .Collection(p => p.Books)
            .Query()
            .Include(b => b.Sales)
            .Load();

            if (publisher == null)
            {
                return(NotFound());
            }

            return(publisher);
        }
        public async Task <ActionResult <Publisher> > GetPublisherDetails(int id)
        {
            //var publisher = _context.Publishers
            //    .Include(pub => pub.Books)
            //        .ThenInclude(book => book.Sales)
            //    .Include(pub => pub.Users)
            //    .Where(pub => pub.PubId == id)
            //    .FirstOrDefault();

            var publisher = await _context.Publishers.SingleAsync(pub => pub.PubId == id);

            _context.Entry(publisher)
            .Collection(pub => pub.Users)
            .Query()
            .Where(usr => usr.EmailAddress.Contains("karin"))
            .Load();

            _context.Entry(publisher)
            .Collection(pub => pub.Books)
            .Query()
            .Include(book => book.Sales)
            .Load();

            var user = await _context.Users.SingleAsync(usr => usr.UserId == 1);

            _context.Entry(user)
            .Reference(usr => usr.Role)
            .Load();

            if (publisher == null)
            {
                return(NotFound());
            }

            return(publisher);
        }