public JsonNetResult List(PublicationInstanceListArgs args)
        {
            using (var dbc = new KuLibDbContext())
            {
                var filteredQuery = dbc.PublicationInstances
                                    .Where(x => !args.PublicationId.HasValue || args.PublicationId.Value == x.Publication.Id)
                                    .Where(x => !args.UserId.HasValue || args.UserId.Value == x.RentingUser.Id);
                var data = filteredQuery
                           .OrderBy(x => x.Id)
                           .Page(args)
                           .Select(x => new PublicationInstanceListDto
                {
                    Id                 = x.Id,
                    PublicationId      = x.Publication.Id,
                    PublicationInfoStr = x.Publication.InfoStr,
                    UserId             = x.RentingUser.Id,
                    UserShortName      = x.RentingUser.ShortName,
                    ReturnDate         = x.ReturnDate
                }).ToArray();

                return(new JsonNetResult()
                {
                    Data = new
                    {
                        data = data,
                        total = filteredQuery.Count(),
                        success = true,
                    }
                });
            }
        }
        public JsonResult ListFree(PublicationInstanceListArgs args)
        {
            using (var dbc = new KuLibDbContext())
            {
                var filteredQuery = dbc.PublicationInstances
                                    .Where(x => x.Publication.Id == args.PublicationId && x.RentingUser == null);
                var data = filteredQuery
                           .OrderBy(x => x.Id)
                           .Page(args)
                           .Select(x => new { Id = x.Id })
                           .ToArray();

                return(Json(new
                {
                    success = true,
                    data = data,
                    total = filteredQuery.Count(),
                }, JsonRequestBehavior.AllowGet));
            }
        }