Esempio n. 1
0
        /// <summary>
        /// 获取印品价格
        /// </summary>
        /// <param name="bookid"></param>
        /// <param name="couponid"></param>
        /// <param name="num"></param>
        /// <returns></returns>
        public static decimal GetBookPrice(int bookid, int couponid, int num)
        {
            Inpinke_Book c = DBBookBLL.GetBookByID(bookid);

            if (c == null)
            {
                throw new Exception();
            }
            int plusPages = c.PageCount - c.Inpinke_Product.BasePages;

            plusPages = plusPages < 0 ? 0 : plusPages;
            decimal price        = (c.Inpinke_Product.Price + (plusPages) * (c.Inpinke_Product.PlusPrice / c.Inpinke_Product.PlusPages)) * num;
            decimal couponPrices = 0;

            if (couponid != 0)
            {
                Inpinke_Coupon coupon = DBCouponBLL.GetCouponByID(couponid);
                if (coupon == null)
                {
                    couponPrices = 0;
                }
                if (coupon.StartTime <= DateTime.Now && coupon.EndTime >= DateTime.Now)
                {
                    couponPrices = coupon.DiscountPostage + coupon.DiscountPrice;
                }
            }
            price -= couponPrices;
            price  = price < 0 ? 0 : price;
            return(price);
        }
Esempio n. 2
0
        public ActionResult CopyBook(int bookid)
        {
            Inpinke_Book model = DBBookBLL.GetBookByID(bookid);

            if (model.UserID != UserSession.CurrentUser.ID)
            {
                ViewBag.Msg = "对不起,您不能拷贝该印品。";
                return(View("error"));
            }
            if (model.DonePages * 100 / model.PageCount < 90)
            {
                ViewBag.Msg = "对不起,当前印品完成度太低,不建议拷贝。您可以直接编辑该印品。";
                return(View("error"));
            }
            BaseResponse br = DBBookBLL.CopyBook(bookid, UserSession.CurrentUser.ID);

            if (!br.IsSuccess)
            {
                ViewBag.Msg = br.Message;
                return(View("error"));
            }
            else
            {
                return(RedirectToAction("book", "my"));
            }
        }
Esempio n. 3
0
        public ActionResult CreateIntime(int prodid)
        {
            Inpinke_Product intime = DBProductBLL.GetProductByID(prodid);
            Inpinke_Book    model  = new Inpinke_Book()
            {
                UserID     = UserSession.CurrentUser.ID,
                BookName   = "我的时光",
                Author     = UserSession.CurrentUser.NickName,
                BookDesc   = "那些过往的时光,穿行在我的字里行间。无声的行走。无休。",
                PageCount  = intime.BasePages,
                ProductID  = prodid,
                ShowStatus = (int)ShowStatus.Public,
                BookCover  = "/Content/pagestyle/images/intime_cover.png"
            };
            BaseResponse br = DBBookBLL.AddBook(model);

            if (br.IsSuccess)
            {
                return(RedirectToAction("editor", new { bookid = model.ID }));
            }
            else
            {
                ViewBag.Msg = "对不起,定制印品失败,您可以重新登录再尝试下。";
                return(View("error"));
            }
        }
Esempio n. 4
0
 /// <summary>
 /// 增加页面
 /// </summary>
 /// <param name="bookid"></param>
 /// <param name="userid"></param>
 /// <param name="pagecount"></param>
 /// <returns></returns>
 public ActionResult AddBookPage(int bookid, int userid, int pagecount)
 {
     try
     {
         Inpinke_Book book = DBBookBLL.GetBookByID(bookid);
         if (book == null)
         {
             return(Content("{\"success\":false,\"msg\":\"添加书本页面失败,刷新页面再试试吧!\"}"));
         }
         if (book.PageCount >= pagecount)
         {
             return(Content("{\"success\":false,\"msg\":\"添加书本页面失败,刷新页面再试试吧!\"}"));
         }
         Inpinke_Book_Page bookpage = DBBookBLL.GetBookPageByPNum(book.PageCount, bookid);
         if (bookpage != null)
         {
             bookpage.PageData.SetAttributeValue("opnum", book.PageCount + "_" + (book.PageCount + 1));
             bookpage.PageData = XElement.Parse(bookpage.PageData.ToString());
             bookpage.SaveWhenSubmit(InpinkeDataContext.Instance);
         }
         book.PageCount = pagecount;
         book.SaveWhenSubmit(InpinkeDataContext.Instance);
         InpinkeDataContext.Instance.Submit();
         return(Content("{\"success\":true,\"msg\":\"添加书本页面成功!\"}"));
     }
     catch (Exception ex)
     {
         Logger.Error(string.Format("AddBookPage Error:{0},BookID:{1},UserID:{2},PageCount:{3}", ex.ToString(), bookid, userid, pagecount));
         return(Content("{\"success\":false,\"msg\":\"添加书本页面失败,刷新页面再试试吧!\"}"));
     }
 }
Esempio n. 5
0
        public ActionResult Editor(int bookid)
        {
            Inpinke_Book model = DBBookBLL.GetBookByID(bookid);

            if (model != null)
            {
                if (model.BookStauts == (int)BookStatus.Making)
                {
                    ViewBag.Msg = "印品已下单印刷不能再做修改,您可以拷贝副本进行编辑/联系客服寻求帮助";
                    return(View("error"));
                }
                if (model.UserID != UserSession.CurrentUser.ID)
                {
                    ViewBag.Msg = "对不起,您不能编辑该印品,因为那件印品好像不属于您。";
                    return(View("error"));
                }
                ViewBag.EditBook = model;
            }
            else
            {
                ViewBag.Msg = "对不起,没有找到您要编辑的印品。";
                return(View("error"));
            }
            return(View());
        }
Esempio n. 6
0
 /// <summary>
 /// 更新完成的页数
 /// </summary>
 /// <param name="bookid"></param>
 public static void UpdateDonePage(int bookid)
 {
     try
     {
         Inpinke_Book model             = GetBookByID(bookid);
         IList <Inpinke_Book_Page> list = GetBookPage(bookid);
         int donePage = 0;
         if (list != null)
         {
             foreach (Inpinke_Book_Page p in list)
             {
                 if (p.PageNum == 0)
                 {
                     continue;
                 }
                 if (p.IsSkip)
                 {
                     donePage += 2;
                 }
                 else
                 {
                     donePage++;
                 }
             }
             model.DonePages = donePage;
         }
         model.SaveWhenSubmit(InpinkeDataContext.Instance);
         InpinkeDataContext.Instance.Submit();
     }
     catch (Exception ex)
     {
         Logger.Error(string.Format("UpdateDonePage BookID:{0}, Error:{1}", bookid, ex.ToString()));
     }
 }
Esempio n. 7
0
        //
        // GET: /Show/

        public ActionResult Index(int?id)
        {
            if (id.HasValue)
            {
                Inpinke_Book model = DBBookBLL.GetBookByID(id.Value);
                if (model.ShowStatus == (int)ShowStatus.Pravice)
                {
                    if (UserSession.CurrentUser != null && UserSession.CurrentUser.ID == model.UserID)
                    {
                        ViewBag.ShowBook     = model;
                        ViewBag.ShowBookPage = DBBookBLL.GetBookPage(id.Value);
                        return(View());
                    }
                    else
                    {
                        ViewBag.Msg = "对不起,当前印品不对外展出,您无法查看。";
                        return(View("error"));
                    }
                }
                else
                {
                    ViewBag.ShowBook     = model;
                    ViewBag.ShowBookPage = DBBookBLL.GetBookPage(id.Value);
                    return(View());
                }
            }
            else
            {
                ViewBag.Msg = "对不起,访问出错!";
                return(View("error"));
            }
        }
Esempio n. 8
0
        //public ActionResult Error(string msg)
        //{
        //    if (string.IsNullOrEmpty(msg))
        //    {
        //        ViewBag.Msg = msg;
        //    }
        //    return View();
        //}

        public ActionResult Random()
        {
            Inpinke_Book model = DBBookBLL.GetRandomShowBook();

            ViewBag.ShowBook     = model;
            ViewBag.ShowBookPage = DBBookBLL.GetBookPage(model.ID);
            return(View("index"));
        }
Esempio n. 9
0
        public ActionResult Index(FormCollection col)
        {
            IList <Inpinke_Cart> list = DBCartBLL.GetUserCart(UserSession.CurrentUser.ID);

            try
            {
                string bookids = col["bookids"];
                if (string.IsNullOrEmpty(bookids))
                {
                    ViewBag.Msg = "商品信息异常,请重新确认";
                    return(View(list));
                }
                //bookids = bookids.TrimEnd(',');
                string[] bookidInfo = bookids.Split(',');
                foreach (string bookid in bookidInfo)
                {
                    Inpinke_Book bModel = DBBookBLL.GetBookByID(int.Parse(bookid));
                    if (bModel != null)
                    {
                        Inpinke_Cart model = new Inpinke_Cart()
                        {
                            BookID    = int.Parse(bookid),
                            Num       = int.Parse(col["num_" + bookid]),
                            CouponID  = int.Parse(col["coupon_select_" + bookid]),
                            Envelope  = int.Parse(col["envelope_" + bookid]),
                            ProductID = bModel.ProductID,
                            UserID    = UserSession.CurrentUser.ID
                        };
                        BaseResponse br = DBCartBLL.AddBook2Cart(model);
                        if (!br.IsSuccess)
                        {
                            ViewBag.Msg = "商品信息异常,请重新确认";
                            return(View(list));
                        }
                    }
                }
                return(RedirectToAction("OrderInfo"));
            }
            catch (Exception ex)
            {
                ViewBag.Msg = "商品信息确认失败,请稍后再试";
                Logger.Error(string.Format("购物车-Index Error:{0}", ex.ToString()));
                return(View(list));
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 保存书本预设
        /// </summary>
        /// <param name="bookid"></param>
        /// <param name="userid"></param>
        /// <param name="bookname"></param>
        /// <param name="bookauthor"></param>
        /// <param name="bookbrief"></param>
        /// <param name="bookfont"></param>
        /// <returns></returns>
        public ActionResult SaveBookSet(int bookid, int userid, string bookname, string bookauthor, string bookbrief, int bookfont)
        {
            Inpinke_Book book = DBBookBLL.GetBookByID(bookid);

            if (book != null)
            {
                book.BookName = bookname;
                book.BookDesc = bookbrief;
                book.Author   = bookauthor;
                book.BookFont = bookfont;
                BaseResponse br = DBBookBLL.UpdateBook(book);
                return(Content("{\"success\":" + br.IsSuccess.ToString().ToLower() + ",\"msg\":\"" + br.Message + "\"}"));
            }
            else
            {
                return(Content("{\"success\":false,\"msg\":\"更新书本信息失败\"}"));
            }
        }
Esempio n. 11
0
        /// <summary>
        /// 更新书本信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static BaseResponse UpdateBook(Inpinke_Book model)
        {
            BaseResponse br = new BaseResponse();

            br.IsSuccess = false;
            try
            {
                model.UpdateTime = DateTime.Now;
                model.SaveWhenSubmit(InpinkeDataContext.Instance);
                InpinkeDataContext.Instance.Submit();
                br.IsSuccess = true;
                br.Message   = "书本信息更新成功";
            }
            catch (Exception ex)
            {
                br.IsSuccess = false;
                br.Message   = "书本信息更新失败,请稍后再试";
                Logger.Error(string.Format("UpdateBook Error:{0},BookID:{1}", ex.ToString(), model.ID));
            }
            return(br);
        }
Esempio n. 12
0
        public ActionResult DelBook(int bookid)
        {
            Inpinke_Book model = DBBookBLL.GetBookByID(bookid, UserSession.CurrentUser.ID);

            if (model == null)
            {
                ViewBag.Msg = "对不起,您不能删除当前印品";
                return(View("error"));
            }
            model.Status = (int)RecordStatus.Delete;
            BaseResponse br = DBBookBLL.UpdateBook(model);

            if (br.IsSuccess)
            {
                return(RedirectToAction("book", "my"));
            }
            else
            {
                ViewBag.Msg = br.Message;
                return(View("error"));
            }
        }
Esempio n. 13
0
        /// <summary>
        /// 添加书本到购物车
        /// </summary>
        /// <param name="bookid"></param>
        /// <returns></returns>
        public ActionResult AddBook2Cart(int bookid)
        {
            Inpinke_Book book = DBBookBLL.GetBookByID(bookid);

            if (book == null)
            {
                ViewBag.Msg = "Sorry!没有找到您要购买的印品";
                return(RedirectToAction("Index", new { msg = ViewBag.Msg }));
            }

            Inpinke_Cart myCart = new Inpinke_Cart()
            {
                UserID    = book.UserID,
                BookID    = book.ID,
                Num       = 1,
                ProductID = book.ProductID
            };
            IList <Inpinke_Product> plusList = DBProductBLL.GetPlusProduct(book.ProductID, ProductType.Envelope);

            if (plusList != null && plusList.Count() > 0)
            {
                myCart.Envelope = plusList.FirstOrDefault().ID;
            }
            IList <Inpinke_Product> plusList1 = DBProductBLL.GetPlusProduct(book.ProductID, ProductType.PlusStuff);

            if (plusList1 != null && plusList1.Count() > 0)
            {
                myCart.Envelope = plusList1.FirstOrDefault().ID;
            }

            BaseResponse br = DBCartBLL.AddBook2Cart(myCart);

            if (!br.IsSuccess)
            {
                ViewBag.Msg = br.Message;
            }
            return(RedirectToAction("Index", new { msg = ViewBag.Msg }));
        }
Esempio n. 14
0
        public ActionResult Checkbookdone(int userid, int bookid)
        {
            Inpinke_Book model = DBBookBLL.GetBookByID(bookid);

            if (model == null)
            {
                //ViewBag.Msg = "对不起没有找到您要下单印刷的印品,您可以在【<a href=\"/my/book\">我的照片书</a>】中直接选择要印刷的印品进行下单印刷。";
                //return View("error");
                return(Content("{\"success\":false,\"msg\":\"对不起没找到您要下单印刷印品,请尝试重新登录。\"}"));
            }
            if (model.UserID != userid)
            {
                return(Content("{\"success\":false,\"msg\":\"对不起您不能下单印刷当前印品,请尝试重新登录。\"}"));
            }
            if (model.PageCount > model.DonePages)
            {
                return(Content("{\"success\":false,\"msg\":\"书本还有" + (model.PageCount - model.DonePages) + "页没有编辑,将印成空白页。确认要下单印刷吗?\"}"));
            }
            else
            {
                return(Content("{\"success\":true,\"msg\":\"书本已完成编辑\"}"));
            }
        }
Esempio n. 15
0
        /// <summary>
        /// 创建照片书
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static BaseResponse AddBook(Inpinke_Book model)
        {
            BaseResponse br = new BaseResponse();

            br.IsSuccess = true;
            try
            {
                model.CreateTime = DateTime.Now;
                model.UpdateTime = DateTime.Now;
                model.Status     = (int)RecordStatus.Nomral;
                model.BookStauts = (int)BookStatus.Create;
                model.InsertWhenSubmit(InpinkeDataContext.Instance);
                InpinkeDataContext.Instance.Submit();
                br.IsSuccess = true;
                br.Message   = "创建照片书成功";
            }
            catch (Exception ex)
            {
                br.IsSuccess = false;
                br.Message   = "创建照片书失败,请稍后再试";
                Logger.Error(string.Format("AddBook Error:{0}", ex.ToString()));
            }
            return(br);
        }
Esempio n. 16
0
        /// <summary>
        /// 设置印品是否分享
        /// </summary>
        /// <param name="bookid"></param>
        /// <returns></returns>
        public ActionResult AjaxSetBookShowStatus(int bookid)
        {
            if (UserSession.CurrentUser == null)
            {
                return(Content("{\"success\":false,\"msg\":\"请重新登录\"}"));
            }
            Inpinke_Book model = DBBookBLL.GetBookByID(bookid, UserSession.CurrentUser.ID);

            if (model == null)
            {
                return(Content("{\"success\":false,\"msg\":\"印品分享设置失败\",\"bookid\":" + bookid + "}"));
            }
            if (model.ShowStatus == (int)ShowStatus.Public)
            {
                model.ShowStatus = (int)ShowStatus.Pravice;
            }
            else
            {
                model.ShowStatus = (int)ShowStatus.Public;
            }
            BaseResponse br = DBBookBLL.UpdateBook(model);

            return(Content("{\"success\":" + br.IsSuccess.ToString().ToLower() + ",\"msg\":\"" + br.Message + "\",\"bookid\":" + bookid + "}"));
        }
Esempio n. 17
0
        /// <summary>
        /// 保存页面缩略图
        /// </summary>
        /// <param name="path"></param>
        /// <param name="pobj"></param>
        public string SavePageView(PageDataObj pobj, int userid, Inpinke_Book book, ref bool istxtO, int pageid)
        {
            int    bookid   = book.ID;
            string prodName = book.Inpinke_Product.ShortName.ToString().ToLower();
            string dName    = "/UserFile";
            string path     = Server.MapPath(dName);
            string filePath = path + "/" + userid + "/" + bookid;

            if (!Directory.Exists(filePath))
            {
                Directory.CreateDirectory(filePath);
            }
            string fileName = "pview_" + pageid + ".jpg";
            int    orgWidth = ConfigMap.GetEditorAttr(prodName, "EditorWidth");

            orgWidth = pobj.isskip == "true" ? orgWidth * 2 : orgWidth;
            int orgHeight = ConfigMap.GetEditorAttr(prodName, "EditorHeight");
            int outWidth  = ConfigMap.GetEditorAttr(prodName, "MiniViewWidth");

            outWidth = pobj.isskip == "true" ? outWidth * 2 : outWidth;
            int outHeight = ConfigMap.GetEditorAttr(prodName, "MiniViewHeight");

            ImageProcessBLL.CreatePageViewImage(pobj, filePath + "/" + fileName, orgWidth, orgHeight, outWidth, outHeight, ref istxtO);
            ImageProcessBLL.CreatePageViewImage(pobj, filePath + "/pthumb_" + pageid + ".jpg", orgWidth, orgHeight, orgWidth, orgHeight, ref istxtO);
            string returnName = dName + "/" + userid + "/" + bookid + "/" + fileName;

            if (pobj.pagenum == 0)
            {
                Image  originalImage = Image.FromFile(filePath + "/pthumb_" + pageid + ".jpg");
                Bitmap bitmap        = new Bitmap(originalImage);
                ImageProcessBLL.CreateScaleImage(bitmap, 200, 200, filePath + "/cover200.jpg", false);
                originalImage.Dispose();
            }

            return(returnName);
        }
Esempio n. 18
0
        /// <summary>
        /// 保存页面内容
        /// </summary>
        /// <param name="bookid"></param>
        /// <param name="userid"></param>
        /// <param name="pagedata"></param>
        /// <returns></returns>
        public ActionResult SavePageData(int bookid, int userid, string pdata)
        {
            try
            {
                Inpinke_Book model    = DBBookBLL.GetBookByID(bookid);
                PageDataObjs pageObjs = (PageDataObjs)JsonConvert.DeserializeObject(pdata, typeof(PageDataObjs));
                if (pageObjs == null)
                {
                    return(Content("{\"success\":false,\"msg\":\"保存失败,内容为空\"}"));
                }
                if (model.BookStauts == (int)BookStatus.Making)
                {
                    return(Content("{\"success\":false,\"msg\":\"对不起当前印品已下单印制不能再编辑。\"}"));
                }
                string     strReturn    = "{\"success\":true,\"pviews\":[";
                string     noneused     = "";
                string     usedimgs     = "";
                List <int> noneUseImage = new List <int>();
                List <int> usedimg      = new List <int>();
                foreach (PageDataObj pageObj in pageObjs.pdatas)
                {
                    int pnum = pageObj.pagenum;
                    Inpinke_Book_Page bookPage = DBBookBLL.GetBookPageByPNum(pnum, bookid);
                    XElement          root     = new XElement("layout", new XAttribute("pnum", pnum), new XAttribute("styleid", pageObj.styleid),
                                                              new XAttribute("isskip", pageObj.isskip), new XAttribute("opnum", pageObj.opagenum), new XAttribute("bgcolor", pageObj.bgcolor));
                    bool isCreate = false;
                    if (bookPage == null)
                    {
                        bookPage = new Inpinke_Book_Page()
                        {
                            BookID  = bookid,
                            PageNum = pnum
                        };
                        isCreate = true;
                    }
                    else
                    {
                        //原页面不是跨页,现在是跨页的,需要删除掉一个原页面
                        if (!bookPage.IsSkip && pageObj.isskip.ToLower() == "true" && pageObj.opagenum != "-1_0")
                        {
                            int opnum = int.Parse(pageObj.opagenum.Replace(pnum + "_", ""));
                            Inpinke_Book_Page oBookPage = DBBookBLL.GetBookPageByPNum(opnum, bookid);
                            if (oBookPage != null)
                            {
                                oBookPage.PageStatus = (int)PageStatus.Delete;
                                DBBookBLL.UpdateBookPage(oBookPage);
                                //修改页面图片使用次数
                                DBImageBLL.ChangeImageUsedNum(oBookPage.PageData, bookid, true, ref noneUseImage);
                            }
                        }
                        //修改页面图片使用次数
                        DBImageBLL.ChangeImageUsedNum(bookPage.PageData, bookid, true, ref noneUseImage);
                    }
                    bookPage.IsSkip = pageObj.isskip.ToLower() == "false" ? false : true;

                    //添加图片节点
                    foreach (PageImage image in pageObj.image)
                    {
                        XElement       imageItem = new XElement("image");
                        PropertyInfo[] pis       = image.GetType().GetProperties();
                        int            urlIndex  = image.src.ToLower().IndexOf("/userfile");
                        if (urlIndex > 0)
                        {
                            image.src = image.src.Substring(urlIndex);
                        }
                        foreach (PropertyInfo property in pis)
                        {
                            //设置节点属性
                            imageItem.SetAttributeValue(property.Name, property.GetValue(image, null));
                        }
                        root.Add(imageItem);
                    }
                    //添加文字节点
                    foreach (PageText text in pageObj.text)
                    {
                        XElement       textItem = new XElement("text");
                        PropertyInfo[] pis      = text.GetType().GetProperties();
                        foreach (PropertyInfo property in pis)
                        {
                            //设置节点属性
                            textItem.SetAttributeValue(property.Name, property.GetValue(text, null));
                        }
                        if (pageObj.pagenum == 0 && text.issingle == "true")
                        {
                            if (!string.IsNullOrEmpty(text.content) && text.conid == "txt_1")
                            {
                                model.BookName = text.content;
                            }
                            if (!string.IsNullOrEmpty(text.content) && text.conid == "txt_2")
                            {
                                model.SubBookName = text.content;
                            }
                        }

                        root.Add(textItem);
                    }
                    bookPage.PageData = root;
                    //修改页面图片使用次数

                    DBImageBLL.ChangeImageUsedNum(bookPage.PageData, bookid, false, ref usedimg);

                    bool istxtO = false; //文字是否过多
                    if (isCreate)
                    {
                        int pID = DBBookBLL.GetMaxBookPageID() + 1;
                        bookPage.PageImg = SavePageView(pageObj, userid, model, ref istxtO, pID);
                    }
                    else
                    {
                        bookPage.PageImg = SavePageView(pageObj, userid, model, ref istxtO, bookPage.ID);
                    }

                    strReturn          += "{\"pnum\":" + pageObj.pagenum + ",\"src\":\"" + bookPage.PageImg + "\",\"isskip\":" + pageObj.isskip + ",\"istxtover\":" + istxtO.ToString().ToLower() + "},";
                    bookPage.PageStatus = (int)PageStatus.Normal;
                    if (pageObj.pagenum == 0)
                    {
                        model.BookCover = "/UserFile/" + UserSession.CurrentUser.ID + "/" + bookid + "/cover200.jpg";
                    }

                    if (isCreate)
                    {
                        DBBookBLL.AddBookPage(bookPage);
                        //更新已完成的页数
                        DBBookBLL.UpdateDonePage(bookid);
                    }
                    else
                    {
                        DBBookBLL.UpdateBookPage(bookPage);
                    }
                }
                noneused = string.Join(",", noneUseImage);
                usedimgs = string.Join(",", usedimg);

                strReturn = strReturn.TrimEnd(',') + "],\"noneusedimg\":[" + noneused + "],\"usedimg\":[" + usedimgs + "]}";
                return(Content(strReturn));
            }
            catch (Exception ex)
            {
                Logger.Error(string.Format("SavePageData BookID:{0},UserID:{1},Error:{2}", bookid, userid, ex.ToString()));
                return(Content("{\"success\":false,\"msg\":\"服务器异常保存失败,请稍后再试\"}"));
            }
        }
Esempio n. 19
0
        /// <summary>
        /// 调整书本顺序
        /// </summary>
        /// <param name="bookid"></param>
        /// <param name="userid"></param>
        /// <param name="numorder"></param>
        /// <returns></returns>
        public ActionResult SetPageNumOrder(int bookid, int userid, string numorder, string delpnum)
        {
            try
            {
                string[] delpnums = delpnum.Split(',');
                string[] nums     = numorder.Split(',');
                // list = DBBookBLL.GetBookPageByPNums(delpnums, bookid);
                Inpinke_Book book = DBBookBLL.GetBookByID(bookid);
                if (delpnums != null && delpnums.Count() > 0)
                {
                    book.PageCount = book.PageCount - delpnums.Length;
                    DBBookBLL.UpdateBook(book);
                    DBBookBLL.DeleteBookPage(delpnum, bookid);
                    DBBookBLL.UpdateDonePage(bookid);
                }

                IList <Inpinke_Book_Page> list = DBBookBLL.GetBookPageByPNums(nums, bookid);
                if (list != null)
                {
                    Hashtable ht = new Hashtable();
                    foreach (Inpinke_Book_Page p in list)
                    {
                        ht[p.PageNum] = p.ID;
                    }

                    int[] intNums = nums.Where(e => int.Parse(e) >= 0).Select(e => int.Parse(e)).ToArray();
                    for (int i = 0; i < intNums.Length; i++)
                    {
                        if (ht[intNums[i]] == null)
                        {
                            continue;
                        }
                        Inpinke_Book_Page model = list.Where(e => e.ID == (int)ht[intNums[i]]).FirstOrDefault();
                        if (model != null)
                        {
                            model.PageNum = i;

                            model.PageData.SetAttributeValue("pnum", i);
                            string opnum = "-1_0";
                            if (i == 0)
                            {
                                opnum = "-1_0";
                            }
                            else if (i == 1)
                            {
                                opnum = "-2_1";
                            }
                            else if (i == intNums.Length - 1)
                            {
                                opnum = i.ToString() + "_-3";
                            }
                            else if (i % 2 == 0)
                            {
                                opnum = i + "_" + (i + 1);
                            }
                            else
                            {
                                opnum = (i - 1) + "_" + i;
                            }
                            model.PageData.SetAttributeValue("opnum", opnum);
                            model.PageData = XElement.Parse(model.PageData.ToString());
                            model.SaveWhenSubmit(InpinkeDataContext.Instance);
                        }
                    }
                }
                InpinkeDataContext.Instance.Submit();
                return(Content("{\"success\":true,\"msg\":\"更新书本信息成功\"}"));
            }
            catch (Exception ex)
            {
                Logger.Error(string.Format("SetPageNumOrder BookID:{0} Error:{1}", bookid, ex.ToString()));
                return(Content("{\"success\":false,\"msg\":\"更新书本信息失败,刷新页面再试试吧!\"}"));
            }
        }
Esempio n. 20
0
        /// <summary>
        /// 生成书本pdf
        /// </summary>
        /// <param name="bookid"></param>
        /// <returns></returns>
        public static bool CreateBookPDF(int bookid)
        {
            Inpinke_Book model   = DBBookBLL.GetBookByID(bookid);
            string       pdfname = FilterSpecial(model.BookName);

            pdfname = OutPath + pdfname + "-" + model.ID + "-intime.pdf";
            PDFProcessBLL pdfProcess = new PDFProcessBLL(PageWidth + 2 * TrimLineLength, PageHeight + 2 * TrimLineLength, pdfname);

            try
            {
                IList <Inpinke_Book_Page> pages = DBBookBLL.GetBookPage(bookid);
                pdfProcess.PaintScale = PaintScale;
                if (pages != null)
                {
                    pages = pages.OrderBy(e => e.PageNum).ToList();


                    pdfProcess.doc.Open();
                    float boneWidth = backboneWidth * model.PageCount;
                    pdfProcess.FlodPageWidth    = flodPageWidth;
                    pdfProcess.BackBoneWidth    = boneWidth;
                    pdfProcess.SinglePageWidth  = PageWidth;
                    pdfProcess.SinglePageHeight = PageHeight;
                    for (int i = 0; i <= model.PageCount; i++)
                    {
                        Inpinke_Book_Page p = pages.Where(e => e.PageNum == i).SingleOrDefault();
                        if (p == null)
                        {
                            pdfProcess.PageWidth  = PageWidth + 2 * TrimLineLength;
                            pdfProcess.PageHeight = PageHeight + 2 * TrimLineLength;
                            pdfProcess.doc.SetPageSize(new iTextSharp.text.Rectangle(pdfProcess.PageWidth, pdfProcess.PageHeight));
                            pdfProcess.doc.NewPage();
                            pdfProcess.PaintTirmLine();
                        }
                        else
                        {
                            float pWidth = PageWidth;
                            if (p.IsSkip)
                            {
                                pWidth = PageWidth * 2;
                                if (i != 0)
                                {
                                    i++;
                                }
                            }
                            else if (i != 1 && i != model.PageCount)
                            {
                                pWidth = PageWidth * 2;
                            }
                            if (i == 0)
                            {
                                //封面和封底和折页书脊总宽度
                                pWidth = PageWidth * 2 + flodPageWidth * 2 + boneWidth;
                            }

                            pdfProcess.PageWidth  = pWidth + 2 * TrimLineLength;
                            pdfProcess.PageHeight = PageHeight + 2 * TrimLineLength;
                            pdfProcess.doc.SetPageSize(new iTextSharp.text.Rectangle(pdfProcess.PageWidth, pdfProcess.PageHeight));
                            pdfProcess.doc.NewPage();
                            pdfProcess.PaintTirmLine();
                            PageDataObj pageObj = (PageDataObj)SerializeXmlHelper.DeserializeFromXml(p.PageData, typeof(PageDataObj));
                            pdfProcess.PaintPage(pageObj, 0);
                            if (!p.IsSkip && i != 1 && i != model.PageCount)
                            {
                                p = pages.Where(e => e.PageNum == i + 1).SingleOrDefault();
                                if (p != null)
                                {
                                    pageObj = (PageDataObj)SerializeXmlHelper.DeserializeFromXml(p.PageData, typeof(PageDataObj));
                                    pdfProcess.PaintPage(pageObj, PageWidth);
                                    i++;
                                }
                            }
                        }
                    }
                    pdfProcess.doc.Close();
                }
                return(true);
            }
            catch (Exception ex)
            {
                pdfProcess.doc.Close();
                Logger.Error(string.Format("CreateBookPDF BookID:{0},Error:{1}", bookid, ex.ToString()));
                return(false);
            }
        }