Exemplo n.º 1
0
        //[ValidateAntiForgeryToken]
        public async Task <ActionResult> AddCart()
        {
            string userId = User.Identity.GetUserId();
            string bookId = HttpContext.Request["bookId"];

            using (var context = new OnionContext())
            {
                PREORDER preOrder = context.preorders.Find(userId, bookId);
                if (preOrder == null)
                {
                    preOrder = new PREORDER()
                    {
                        CUSTOMERID = userId,
                        BOOKID     = bookId,
                        AMOUNT     = 1,
                    };
                    context.preorders.Add(preOrder);
                }
                else
                {
                    preOrder.AMOUNT += 1;
                }


                int x = await(context.SaveChangesAsync());
            }
            return(Content("添加成功"));
        }
Exemplo n.º 2
0
        //
        // GET: /Account/Cart/?userId=xxxx&bookId=xxxx
        //public ActionResult Cart(string userId, string bookId)
        //{
        //    using(var context = new OnionContext())
        //    {
        //        context.preorders.Remove(context.preorders.Where(x => x.BOOKID == bookId && x.CUSTOMERID == userId).FirstOrDefault());
        //        int res = context.SaveChanges();
        //    }
        //    return View();
        //}


        //
        // GET: /Account/Star/?userId=xxxx
        public ActionResult Star()
        {
            var    starVM = new GoodsViewModel();
            string userId = User.Identity.GetUserId();

            using (var context = new OnionContext())
            {
                var query = from b in context.stars
                            join c in context.books on b.BOOKID equals c.BOOKID
                            join d in context.pictures on c.BOOKID equals d.BOOKID
                            join e in context.writes on c.BOOKID equals e.BOOKID
                            join f in context.authors on e.AUTHORID equals f.AUTHORID
                            where b.CUSTOMERID == userId
                            select new Goods()
                {
                    PICTURE   = d.PATH,
                    NAME      = c.NAME,
                    PRICE     = c.PRICE * c.DISCOUNT,
                    PUBLISHER = c.PUBLISHER,
                    AUTHOR    = f.NAME,
                    BOOKID    = b.BOOKID,
                };

                starVM.GOODS = new System.Collections.Generic.List <Goods>(query.ToList());
            }

            return(View(starVM));
        }
Exemplo n.º 3
0
        public ActionResult Cart()
        {
            var cartVM = new GoodsViewModel();

            using (var context = new OnionContext())
            {
                string userId = User.Identity.GetUserId();
                var    query  = from b in context.preorders
                                join c in context.books on b.BOOKID equals c.BOOKID
                                join d in context.pictures on c.BOOKID equals d.BOOKID
                                where b.CUSTOMERID == userId
                                select new Goods()
                {
                    PICTURE = d.PATH,
                    NAME    = c.NAME,
                    AMOUNT  = b.AMOUNT,
                    PRICE   = c.PRICE * c.DISCOUNT,
                    BOOKID  = b.BOOKID,
                };

                cartVM.GOODS = new System.Collections.Generic.List <Goods>(query.ToList());
            }

            cartVM.calcTotal();

            return(View(cartVM));
        }
Exemplo n.º 4
0
        public async Task <ActionResult> RemoveStar()
        {
            string userId = User.Identity.GetUserId();
            string bookId = HttpContext.Request["bookId"];

            using (var context = new OnionContext())
            {
                var s = context.stars.Find(userId, bookId);
                context.stars.Remove(s);
                await context.SaveChangesAsync();
            }
            return(Content("删除成功"));
        }
Exemplo n.º 5
0
        public async Task <ActionResult> RemoveCart()
        {
            string userId    = User.Identity.GetUserId();
            string bookId    = HttpContext.Request["bookId"];
            string returnURL = HttpContext.Request["returnUrl"];

            using (var context = new OnionContext())
            {
                var pre = context.preorders.Find(userId, bookId);
                context.preorders.Remove(pre);
                await context.SaveChangesAsync();
            }
            return(Redirect(returnURL));
        }
Exemplo n.º 6
0
        public ActionResult Hot(int pages = 1)
        {
            var bkVM = new BookViewModel();

            using (var context = new OnionContext())
            {
                var query = from b in context.books
                            join c in context.pictures on b.BOOKID equals c.BOOKID
                            join d in context.writes on b.BOOKID equals d.BOOKID
                            join e in context.authors on d.AUTHORID equals e.AUTHORID
                            orderby b.SALE descending
                            select new Detailbook()
                {
                    ID             = b.BOOKID,
                    NAME           = b.NAME,
                    ISBN           = b.ISBN,
                    PRIMARYID      = b.PRIMARYID,
                    PUBLISHER      = b.PUBLISHER,
                    PAGES          = b.PAGES,
                    PUBLISHINGDATE = b.PUBLISHINGDATE,
                    STOCK          = b.STOCK,
                    SCORE          = b.SCORE,
                    PRICE          = b.PRICE,
                    DISCOUNT       = b.DISCOUNT,
                    SALE           = b.SALE,
                    PATH           = c.PATH,
                    AUTHOR         = e.NAME,
                    INTRODUCTION   = b.INTRODUCTION,
                    SECONDARYID    = b.SECONDARYID
                };
                bkVM.hotBook = new List <Detailbook>();
                //query = query.OrderByDescending(a => a.SCORE);
                var res = query.ToList();
                for (int i = (pages - 1) * 10; (i < pages * 10 && i < res.Count()); ++i)
                {
                    res[i].INTRODUCTION = replaceNewLine(res[i].INTRODUCTION);
                    bkVM.hotBook.Add(res[i]);
                }
                ViewBag.pages       = Math.Ceiling(res.Count() / 10.0);
                ViewBag.currentPage = pages;
                ViewBag.addPage     = pages + 1;
                ViewBag.minusPage   = pages - 1;
            }
            return(View(bkVM));
        }
Exemplo n.º 7
0
        public ActionResult AddStar()
        {
            string userId = User.Identity.GetUserId();
            string bookId = HttpContext.Request["bookId"];

            using (var context = new OnionContext())
            {
                STAR item = new STAR()
                {
                    CUSTOMERID = userId,
                    BOOKID     = bookId,
                    TIME       = DateTime.Now.ToString(),
                };
                context.stars.Add(item);
                int res = context.SaveChanges();
            }
            return(Content("添加成功"));
        }
Exemplo n.º 8
0
        private IEnumerable <HomeBookInfo> queryOnSales(OnionContext context, string primaryid)
        {
            IEnumerable <HomeBookInfo> qsp = from b in context.books
                                             join c in context.pictures on b.BOOKID equals c.BOOKID
                                             join d in context.writes on b.BOOKID equals d.BOOKID
                                             join e in context.authors on d.AUTHORID equals e.AUTHORID
                                             where b.PRIMARYID == primaryid
                                             orderby b.DISCOUNT ascending
                                             select new HomeBookInfo()
            {
                BOOKID     = b.BOOKID,
                NAME       = b.NAME,
                AUTHORNAME = e.NAME,
                SCORE      = b.SCORE,
                PRICE      = b.PRICE,
                DISCOUNT   = b.DISCOUNT,
                PATH       = c.PATH
            };

            return(qsp);
        }
Exemplo n.º 9
0
        public ActionResult Orderlist(string userId)
        {
            CheckoutViewModel orderVM = new CheckoutViewModel()
            {
                DOrders = new List <DetailOrder>()
            };

            using (var context = new OnionContext())
            {
                var queryOrder = from o in context.oorders
                                 where o.CUSTOMERID == userId
                                 select new BasicOrder()
                {
                    ORDERID = o.ORDERID,
                    TIME    = o.TIME,
                    TOTAL   = o.TOTAL,
                    STATUS  = o.STATUS
                };
                var orderArray = queryOrder.ToArray();

                for (int i = 0; i < orderArray.Length; ++i)
                {
                    var queryDetails = from c in context.contains
                                       join b in context.books on c.BOOKID equals b.BOOKID
                                       join p in context.pictures on b.BOOKID equals p.BOOKID
                                       where c.ORDERID == orderArray[i].ORDERID
                                       select new OrderItem
                    {
                        PATH     = p.PATH,
                        NAME     = b.NAME,
                        AMOUNT   = c.AMOUNT,
                        SUBTOTAL = c.SUM,
                        PRICE    = c.SUM / c.AMOUNT,
                    };
                    orderVM.DOrders.Add(new DetailOrder(orderArray[i], queryDetails.ToList()));
                }
            }
            return(View(orderVM));
        }
Exemplo n.º 10
0
 public UnitOfWork(OnionContext context)
 {
     this.context = context;
 }
Exemplo n.º 11
0
 public Repository(OnionContext context)
 {
     _context = context;
     _dbSet   = context.Set <TEntity>();
 }
Exemplo n.º 12
0
        public ActionResult Type(string typename, int pages = 1)
        {
            var bkVM = new BookViewModel();

            using (var context = new OnionContext())
            {
                string pID = null, sID = null, chname = null;
                typename = typename.Replace("/", "");
                switch (typename)
                {
                case "fiction": { pID = "01"; sID = "01"; chname = "小说"; break; }

                case "scatter": { pID = "01"; sID = "02"; chname = "随笔"; break; }

                case "prose": { pID = "01"; sID = "03"; chname = "散文"; break; }

                case "poetry": { pID = "01"; sID = "04"; chname = "诗歌"; break; }

                case "fairytale": { pID = "01"; sID = "05"; chname = "童话"; break; }

                case "essay": { pID = "01"; sID = "06"; chname = "杂文"; break; }

                case "child": { pID = "01"; sID = "07"; chname = "儿童"; break; }

                case "masterpiece": { pID = "01"; sID = "08"; chname = "名著"; break; }

                case "comic": { pID = "02"; sID = "01"; chname = "漫画"; break; }

                case "painting": { pID = "02"; sID = "02"; chname = "绘本"; break; }

                case "romance": { pID = "02"; sID = "03"; chname = "言情"; break; }

                case "reasoning": { pID = "02"; sID = "04"; chname = "推理"; break; }

                case "sf": { pID = "02"; sID = "05"; chname = "科幻"; break; }

                case "ma": { pID = "02"; sID = "06"; chname = "武侠"; break; }

                case "youthfulness": { pID = "02"; sID = "07"; chname = "青春"; break; }

                case "suspense": { pID = "02"; sID = "08"; chname = "悬疑"; break; }

                case "history": { pID = "03"; sID = "01"; chname = "历史"; break; }

                case "psychological": { pID = "03"; sID = "02"; chname = "心理"; break; }

                case "society": { pID = "03"; sID = "03"; chname = "社会"; break; }

                case "philosophy": { pID = "03"; sID = "04"; chname = "哲学"; break; }

                case "art": { pID = "03"; sID = "05"; chname = "艺术"; break; }

                case "politics": { pID = "03"; sID = "06"; chname = "政治"; break; }

                case "building": { pID = "03"; sID = "07"; chname = "建筑"; break; }

                case "religion": { pID = "03"; sID = "08"; chname = "宗教"; break; }

                case "travel": { pID = "04"; sID = "01"; chname = "旅行"; break; }

                case "photography": { pID = "04"; sID = "02"; chname = "摄影"; break; }

                case "food": { pID = "04"; sID = "03"; chname = "美食"; break; }

                case "health": { pID = "04"; sID = "04"; chname = "健康"; break; }

                case "education": { pID = "04"; sID = "05"; chname = "教育"; break; }

                case "home": { pID = "04"; sID = "06"; chname = "家居"; break; }

                case "workplace": { pID = "04"; sID = "07"; chname = "职场"; break; }

                case "gender": { pID = "04"; sID = "08"; chname = "两性"; break; }

                case "economic": { pID = "05"; sID = "01"; chname = "经济"; break; }

                case "management": { pID = "05"; sID = "02"; chname = "管理"; break; }

                case "financial": { pID = "05"; sID = "03"; chname = "金融"; break; }

                case "investment": { pID = "05"; sID = "04"; chname = "投资"; break; }

                case "marketing": { pID = "05"; sID = "05"; chname = "营销"; break; }

                case "fm": { pID = "05"; sID = "06"; chname = "理财"; break; }

                case "stock": { pID = "05"; sID = "07"; chname = "股票"; break; }

                case "ad": { pID = "05"; sID = "08"; chname = "广告"; break; }

                case "sc": { pID = "06"; sID = "01"; chname = "科普"; break; }

                case "science": { pID = "06"; sID = "02"; chname = "科学"; break; }

                case "interaction": { pID = "06"; sID = "03"; chname = "交互"; break; }

                case "programming": { pID = "06"; sID = "04"; chname = "编程"; break; }

                case "algorithms": { pID = "06"; sID = "05"; chname = "算法"; break; }

                case "communication": { pID = "06"; sID = "06"; chname = "通信"; break; }

                case "program": { pID = "06"; sID = "07"; chname = "程序"; break; }

                case "internet": { pID = "06"; sID = "08"; chname = "互联网"; break; }
                }


                var query = from b in context.books
                            join c in context.pictures on b.BOOKID equals c.BOOKID
                            join d in context.writes on b.BOOKID equals d.BOOKID
                            join e in context.authors on d.AUTHORID equals e.AUTHORID
                            where (b.PRIMARYID == pID) && (b.SECONDARYID == sID)
                            select new Detailbook()
                {
                    ID             = b.BOOKID,
                    NAME           = b.NAME,
                    ISBN           = b.ISBN,
                    PRIMARYID      = b.PRIMARYID,
                    PUBLISHER      = b.PUBLISHER,
                    PAGES          = b.PAGES,
                    PUBLISHINGDATE = b.PUBLISHINGDATE,
                    STOCK          = b.STOCK,
                    SCORE          = b.SCORE,
                    PRICE          = b.PRICE,
                    DISCOUNT       = b.DISCOUNT,
                    SALE           = b.SALE,
                    PATH           = c.PATH,
                    AUTHOR         = e.NAME,
                    INTRODUCTION   = b.INTRODUCTION,
                    SECONDARYID    = b.SECONDARYID
                };
                bkVM.typeBook = new List <Detailbook>();
                //query = query.OrderByDescending(a => a.SCORE);
                var res = query.ToList();
                for (int i = (pages - 1) * 10; (i < pages * 10 && i < res.Count()); ++i)
                {
                    bkVM.typeBook.Add(res[i]);
                }
                ViewBag.pages       = Math.Ceiling(res.Count() / 10.0);
                ViewBag.currentPage = pages;
                ViewBag.addPage     = pages + 1;
                ViewBag.minusPage   = pages - 1;
                bkVM.type           = chname;
            }
            return(View(bkVM));
        }
Exemplo n.º 13
0
        // GET: Book
        public ActionResult Index(string id)
        {
            var bkVM = new BookViewModel();

            using (var context = new OnionContext())
            {
                var query = from b in context.books
                            join c in context.pictures on b.BOOKID equals c.BOOKID
                            join d in context.writes on b.BOOKID equals d.BOOKID
                            join e in context.authors on d.AUTHORID equals e.AUTHORID
                            where b.BOOKID == id
                            select new Detailbook()
                {
                    ID             = b.BOOKID,
                    NAME           = b.NAME,
                    ISBN           = b.ISBN,
                    PRIMARYID      = b.PRIMARYID,
                    PUBLISHER      = b.PUBLISHER,
                    PAGES          = b.PAGES,
                    PUBLISHINGDATE = b.PUBLISHINGDATE,
                    STOCK          = b.STOCK,
                    SCORE          = b.SCORE,
                    PRICE          = b.PRICE,
                    DISCOUNT       = b.DISCOUNT,
                    SALE           = b.SALE,
                    PATH           = c.PATH,
                    AUTHOR         = e.NAME,
                    INTRODUCTION   = b.INTRODUCTION,
                    SECONDARYID    = b.SECONDARYID
                };
                var res = query.First();
                res.INTRODUCTION = replaceNewLine(res.INTRODUCTION);
                bkVM.detailBook  = res;


                var q = from b in context.books
                        join c in context.pictures on b.BOOKID equals c.BOOKID
                        join d in context.writes on b.BOOKID equals d.BOOKID
                        join e in context.authors on d.AUTHORID equals e.AUTHORID
                        where e.NAME == res.AUTHOR
                        select new Detailbook()
                {
                    ID             = b.BOOKID,
                    NAME           = b.NAME,
                    ISBN           = b.ISBN,
                    PRIMARYID      = b.PRIMARYID,
                    PUBLISHER      = b.PUBLISHER,
                    PAGES          = b.PAGES,
                    PUBLISHINGDATE = b.PUBLISHINGDATE,
                    STOCK          = b.STOCK,
                    SCORE          = b.SCORE,
                    PRICE          = b.PRICE,
                    DISCOUNT       = b.DISCOUNT,
                    SALE           = b.SALE,
                    PATH           = c.PATH,
                    AUTHOR         = e.NAME,
                    INTRODUCTION   = b.INTRODUCTION,
                    SECONDARYID    = b.SECONDARYID
                };
                bkVM.relatedBook = new List <Detailbook>();
                //query = query.OrderByDescending(a => a.SCORE);
                var r = q.ToList();
                r.Remove(res);
                for (int i = 0; (i < 4 && i < r.Count()); ++i)
                {
                    r[i].INTRODUCTION = replaceNewLine(r[i].INTRODUCTION);
                    bkVM.relatedBook.Add(r[i]);
                }
            }
            return(View(bkVM));
        }
Exemplo n.º 14
0
        //        [HttpPost]
        //[ValidateAntiForgeryToken]
        //public async Task<ActionResult> Index(string id, string userId, int amount)
        //{
        //    using(var context = new OnionContext())
        //    {
        //        var preOrder = new PREORDER()
        //        {
        //            CUSTOMERID = userId,
        //            BOOKID = id,
        //            AMOUNT = amount,
        //        };
        //        context.preorders.Add(preOrder);
        //        int x = await(context.SaveChangesAsync());
        //    }
        //    ViewBag.Message = "添加成功!";
        //    return View();
        //}

        ////GET:Book/
        //public async Task<ActionResult> Index(string id, string userId)
        //{
        //    using (var context = new OnionContext())
        //    {
        //        var star = new STAR()
        //        {
        //            CUSTOMERID = userId,
        //            BOOKID = id,
        //            TIME = DateTime.Now.Date.ToString(),
        //        };
        //        context.stars.Add(star);
        //        int x = await (context.SaveChangesAsync());
        //    }
        //    ViewBag.Message = "添加成功!";
        //    return View();
        //}

        public ActionResult Search(string standard, string keywords)
        {
            var bkVM = new BookViewModel();

            ViewBag.keywords = keywords;
            switch (standard)
            {
            case "bookname":
            {
                using (var context = new OnionContext())
                {
                    var query = from b in context.books
                                join c in context.pictures on b.BOOKID equals c.BOOKID
                                join d in context.writes on b.BOOKID equals d.BOOKID
                                join e in context.authors on d.AUTHORID equals e.AUTHORID
                                where b.NAME.Contains(keywords)
                                select new Detailbook()
                    {
                        ID             = b.BOOKID,
                        NAME           = b.NAME,
                        ISBN           = b.ISBN,
                        PRIMARYID      = b.PRIMARYID,
                        PUBLISHER      = b.PUBLISHER,
                        PAGES          = b.PAGES,
                        PUBLISHINGDATE = b.PUBLISHINGDATE,
                        STOCK          = b.STOCK,
                        SCORE          = b.SCORE,
                        PRICE          = b.PRICE,
                        DISCOUNT       = b.DISCOUNT,
                        SALE           = b.SALE,
                        PATH           = c.PATH,
                        AUTHOR         = e.NAME,
                        INTRODUCTION   = b.INTRODUCTION,
                        SECONDARYID    = b.SECONDARYID
                    };
                    bkVM.srcBook = new List <Detailbook>(query.ToList());
                }
                return(View(bkVM));
            }


            case "author":    //nature join
            {
                using (var context = new OnionContext())
                {
                    var query = from b in context.books
                                join c in context.pictures on b.BOOKID equals c.BOOKID
                                join d in context.writes on b.BOOKID equals d.BOOKID
                                join e in context.authors on d.AUTHORID equals e.AUTHORID
                                where e.NAME.Contains(keywords)
                                select new Detailbook()
                    {
                        ID             = b.BOOKID,
                        NAME           = b.NAME,
                        ISBN           = b.ISBN,
                        PRIMARYID      = b.PRIMARYID,
                        PUBLISHER      = b.PUBLISHER,
                        PAGES          = b.PAGES,
                        PUBLISHINGDATE = b.PUBLISHINGDATE,
                        STOCK          = b.STOCK,
                        SCORE          = b.SCORE,
                        PRICE          = b.PRICE,
                        DISCOUNT       = b.DISCOUNT,
                        SALE           = b.SALE,
                        PATH           = c.PATH,
                        AUTHOR         = e.NAME,
                        INTRODUCTION   = b.INTRODUCTION,
                        SECONDARYID    = b.SECONDARYID
                    };
                    bkVM.srcBook = new List <Detailbook>(query.ToList());
                }
                return(View(bkVM));
            }

            case "publisher":
            {
                using (var context = new OnionContext())
                {
                    var query = from b in context.books
                                join c in context.pictures on b.BOOKID equals c.BOOKID
                                join d in context.writes on b.BOOKID equals d.BOOKID
                                join e in context.authors on d.AUTHORID equals e.AUTHORID
                                where b.PUBLISHER.Contains(keywords)
                                select new Detailbook()
                    {
                        ID             = b.BOOKID,
                        NAME           = b.NAME,
                        ISBN           = b.ISBN,
                        PRIMARYID      = b.PRIMARYID,
                        PUBLISHER      = b.PUBLISHER,
                        PAGES          = b.PAGES,
                        PUBLISHINGDATE = b.PUBLISHINGDATE,
                        STOCK          = b.STOCK,
                        SCORE          = b.SCORE,
                        PRICE          = b.PRICE,
                        DISCOUNT       = b.DISCOUNT,
                        SALE           = b.SALE,
                        PATH           = c.PATH,
                        AUTHOR         = e.NAME,
                        INTRODUCTION   = b.INTRODUCTION,
                        SECONDARYID    = b.SECONDARYID
                    };
                    bkVM.srcBook = new List <Detailbook>(query.ToList());
                }
                return(View(bkVM));
            }

            case "isbn":
            {
                using (var context = new OnionContext())
                {
                    var query = from b in context.books
                                join c in context.pictures on b.BOOKID equals c.BOOKID
                                join d in context.writes on b.BOOKID equals d.BOOKID
                                join e in context.authors on d.AUTHORID equals e.AUTHORID
                                where b.ISBN.Contains(keywords)
                                select new Detailbook()
                    {
                        ID             = b.BOOKID,
                        NAME           = b.NAME,
                        ISBN           = b.ISBN,
                        PRIMARYID      = b.PRIMARYID,
                        PUBLISHER      = b.PUBLISHER,
                        PAGES          = b.PAGES,
                        PUBLISHINGDATE = b.PUBLISHINGDATE,
                        STOCK          = b.STOCK,
                        SCORE          = b.SCORE,
                        PRICE          = b.PRICE,
                        DISCOUNT       = b.DISCOUNT,
                        SALE           = b.SALE,
                        PATH           = c.PATH,
                        AUTHOR         = e.NAME,
                        INTRODUCTION   = b.INTRODUCTION,
                        SECONDARYID    = b.SECONDARYID
                    };
                    bkVM.srcBook = new List <Detailbook>(query.ToList());
                }
                return(View(bkVM));
            }

            default:
                return(View());
            }
        }
Exemplo n.º 15
0
        public ActionResult Index()
        {
            var HomeVM = new HomeIndexViewModel();

            HomeVM.bpsLit    = new List <HomeBookInfo>();
            HomeVM.bpsPop    = new List <HomeBookInfo>();
            HomeVM.bpsCul    = new List <HomeBookInfo>();
            HomeVM.bpsLif    = new List <HomeBookInfo>();
            HomeVM.bpsEco    = new List <HomeBookInfo>();
            HomeVM.bpsTec    = new List <HomeBookInfo>();
            HomeVM.bpsRank   = new List <HomeBookInfo>();
            HomeVM.bpsScore  = new List <HomeBookInfo>();
            HomeVM.bpsLatest = new List <HomeBookInfo>();
            HomeVM.bpsRcm    = new List <HomeBookInfo>();

            using (var context = new OnionContext())
            {
                //On sales
                var queryLit = queryOnSales(context, "01");
                var queryPop = queryOnSales(context, "02");
                var queryCul = queryOnSales(context, "03");
                var queryLif = queryOnSales(context, "04");
                var queryEco = queryOnSales(context, "05");
                var queryTec = queryOnSales(context, "06");

                var resLit = queryLit.ToList();
                var resPop = queryPop.ToList();
                var resCul = queryCul.ToList();
                var resLif = queryLif.ToList();
                var resEco = queryEco.ToList();
                var resTec = queryTec.ToList();


                //best seller
                var queryRank = from b in context.books
                                join c in context.pictures on b.BOOKID equals c.BOOKID
                                join d in context.writes on b.BOOKID equals d.BOOKID
                                join e in context.authors on d.AUTHORID equals e.AUTHORID
                                orderby b.SALE descending
                                select new HomeBookInfo()
                {
                    BOOKID     = b.BOOKID,
                    NAME       = b.NAME,
                    AUTHORNAME = e.NAME,
                    SCORE      = b.SCORE,
                    PRICE      = b.PRICE,
                    DISCOUNT   = b.DISCOUNT,
                    PATH       = c.PATH
                };
                var resRank = queryRank.ToList();

                //Good reputation
                var queryScore = from b in context.books
                                 join c in context.pictures on b.BOOKID equals c.BOOKID
                                 join d in context.writes on b.BOOKID equals d.BOOKID
                                 join e in context.authors on d.AUTHORID equals e.AUTHORID
                                 orderby b.SCORE descending
                                 select new HomeBookInfo()
                {
                    BOOKID     = b.BOOKID,
                    NAME       = b.NAME,
                    AUTHORNAME = e.NAME,
                    SCORE      = b.SCORE,
                    PRICE      = b.PRICE,
                    DISCOUNT   = b.DISCOUNT,
                    PATH       = c.PATH
                };
                var resScore = queryScore.ToList();

                //Latest
                var queryLatest = from b in context.books
                                  join c in context.pictures on b.BOOKID equals c.BOOKID
                                  join d in context.writes on b.BOOKID equals d.BOOKID
                                  join e in context.authors on d.AUTHORID equals e.AUTHORID
                                  orderby b.PUBLISHINGDATE descending
                                  select new HomeBookInfo()
                {
                    BOOKID     = b.BOOKID,
                    NAME       = b.NAME,
                    AUTHORNAME = e.NAME,
                    SCORE      = b.SCORE,
                    PRICE      = b.PRICE,
                    DISCOUNT   = b.DISCOUNT,
                    PATH       = c.PATH
                };
                var resLatest = queryLatest.ToList();

                //Recommended:
                var queryRcm = from b in context.books
                               join c in context.pictures on b.BOOKID equals c.BOOKID
                               join d in context.writes on b.BOOKID equals d.BOOKID
                               join e in context.authors on d.AUTHORID equals e.AUTHORID
                               where b.SCORE >= 4.5 && b.SALE >= 150
                               select new HomeBookInfo()
                {
                    BOOKID     = b.BOOKID,
                    NAME       = b.NAME,
                    AUTHORNAME = e.NAME,
                    SCORE      = b.SCORE,
                    PRICE      = b.PRICE,
                    DISCOUNT   = b.DISCOUNT,
                    PATH       = c.PATH
                };
                var resRcm = queryRcm.ToList();

                for (int i = 0; i < 10; i++)
                {
                    HomeVM.bpsLit.Add(resLit[i]);
                    HomeVM.bpsPop.Add(resPop[i]);
                    HomeVM.bpsCul.Add(resCul[i]);
                    HomeVM.bpsLif.Add(resLif[i]);
                    HomeVM.bpsEco.Add(resEco[i]);
                    HomeVM.bpsTec.Add(resTec[i]);
                    HomeVM.bpsRank.Add(resRank[i]);
                    HomeVM.bpsScore.Add(resScore[i]);
                    HomeVM.bpsLatest.Add(resLatest[i]);
                    HomeVM.bpsRcm.Add(resRcm[i]);
                }
            }
            return(View(HomeVM));
        }
Exemplo n.º 16
0
        //[HttpPost]
        //[ValidateAntiForgeryToken]
        public ActionResult Checkout()
        {
            return(View());

            double            total  = 0;
            string            userId = User.Identity.GetUserId();
            CheckoutViewModel ckVM   = new CheckoutViewModel();
            OORDER            order  = new OORDER()
            {
                CUSTOMERID  = userId,
                ORDERID     = DateTime.Now.ToFileTime().ToString(),
                RECIPIENTID = "01",
                TIME        = DateTime.Now.ToString(),
                REMARK      = "",
                STATUS      = "未完成",
                SCORE       = 5,
                FEEDBACK    = "",
            };

            using (var context = new OnionContext())
            {
                var query = from p in context.preorders
                            where p.CUSTOMERID == userId
                            select p;
                var preOrderlist = query.ToList();
                ckVM.Contains = new List <CONTAIN>();
                for (int i = 0; i < preOrderlist.Count; ++i)
                {
                    ckVM.Contains.Add(new CONTAIN()
                    {
                        ORDERID = order.ORDERID,
                        BOOKID  = preOrderlist[i].BOOKID,
                        AMOUNT  = preOrderlist[i].AMOUNT,
                    });
                    var tmpId = preOrderlist[i].BOOKID;
                    var pr    = from b in context.books
                                where b.BOOKID == tmpId
                                select b.PRICE;
                    double price = pr.FirstOrDefault();
                    ckVM.Contains[i].SUM = price * preOrderlist[i].AMOUNT;
                }
                for (int i = 0; i < ckVM.Contains.Count; ++i)
                {
                    total += ckVM.Contains[i].SUM;
                }
                order.TOTAL = total;
                context.oorders.Add(order);

                for (int index = 0; index < ckVM.Contains.Count; ++index)
                {
                    var tmpId = ckVM.Contains[index].BOOKID;
                    context.preorders.Remove(context.preorders.Where(
                                                 pre => pre.CUSTOMERID == userId &&
                                                 pre.BOOKID == tmpId).FirstOrDefault());
                    context.contains.Add(ckVM.Contains[index]);
                }
                ckVM.NewOrder = order;
                context.SaveChanges();
            }

            return(View(ckVM));
        }