Exemple #1
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\":\"更新书本信息失败,刷新页面再试试吧!\"}"));
            }
        }