Ejemplo n.º 1
0
        // GET: AddBook
        // 新增 Book 的表單 Controller
        public ActionResult AddBook()
        {
            AddBookFactory factory = new AddBookFactory();
            EditBookModel  ab      = new EditBookModel();

            ab.出版社編號加名稱 = factory.傳回出版社編號名稱();
            ab.作者編號加名稱  = factory.傳回作者編號名稱();

            return(View(ab));
        }
Ejemplo n.º 2
0
        public string SaveNewBook(AddBooks b, AddBooksChapters bc, AddBooksFiles bf, AddBooksTags bt)
        {
            AddBookFactory factory = new AddBookFactory();

            // 書籍作者資料表
            AddBooksAuthor ba = new AddBooksAuthor();

            ba.b_id         = factory.自動產生b_id();
            ba.AuthorIdName = Request.Form.GetValues("AuthorIdName");

            // 書籍大綱資料表
            bc.bc_Content = Request.Form["bcContent"];

            // 書籍資料表
            b.b_id = ba.b_id;

            // 書籍標籤資料表
            bt.Tags = factory.Tags轉成陣列(Request.Form["Tags"]);
            bt.b_id = b.b_id;

            string photoName = factory.書籍封面圖片命名(b);

            // 存到書籍資料表的 poco 類別
            b.b_Name          = Request.Form["BookName"];
            b.b_Info          = Request.Form["BookInfo"];
            b.b_Image         = photoName;
            b.b_Type          = Request.Form["Booktype"];
            b.b_PublishedDate = Convert.ToDateTime(Request.Form["PublishedDate"]);
            b.b_DatePrice     = Convert.ToInt32(Request.Form["DatePrice"]);
            b.b_ISBN          = Request.Form["ISBN"];
            b.b_AgeRating     = Request.Form["AgeRange"];
            b.b_Series_yn     = Request.Form["Series"];
            if (Request.Form["PublishedIdName"] != null)
            {
                b.PublishedIdName = Request.Form["PublishedIdName"];
                b.p_id            = factory.出版社資料解析成編號(b.PublishedIdName);
            }

            string 書籍編號資料夾路徑 = Server.MapPath("../書籍素材/" + b.b_Type + "素材/" + ba.b_id);
            string 書籍章節資料夾路徑 = Server.MapPath("../書籍素材/" + b.b_Type + "素材/" + ba.b_id + "/" + ba.b_id + "-1");
            string 儲存書籍封面路徑  = Server.MapPath("../書籍素材/" + b.b_Type + "素材/" + b.b_id + "/" + photoName);

            // 新增小說 書籍編號資料夾
            if (!Directory.Exists(書籍編號資料夾路徑))
            {
                Directory.CreateDirectory(書籍編號資料夾路徑);
            }

            // 新增小說章節資料夾
            if (!Directory.Exists(書籍章節資料夾路徑))
            {
                Directory.CreateDirectory(書籍章節資料夾路徑);
            }

            // 儲存書籍封面到路徑
            b.Image.SaveAs(儲存書籍封面路徑);

            //----------------------------------------------------------------------------------

            // 儲存該章節的書籍檔案到路徑
            bc.bc_Chapters = 1;
            bf.FilesName   = new List <string>();

            // 在儲存檔案時 自動更改檔名
            // 在上傳時需注意:
            // 1.請將每個檔案名稱 依照順序重新命名 例:1.txt、2.txt、3.txt .....
            // 2.確認要上傳的那個資料夾 Windows 的排序是依據 1.名稱 2.遞增
            if (bf.Files.Count() > 0)
            {
                int i = 1;
                foreach (HttpPostedFileBase uploadFile in bf.Files)
                {
                    if (uploadFile.ContentLength > 0)
                    {
                        // 這個陣列用來 將多筆章節檔名 儲存到資料庫使用
                        bf.FilesName.Add(b.b_id + "-1-" + i + factory.回傳書籍章節檔案副檔名(uploadFile));

                        // 上傳時自動編名
                        uploadFile.SaveAs(Server.MapPath("../書籍素材/" + b.b_Type + "素材/" + b.b_id + "/" + b.b_id + "-1/" + b.b_id + "-1-" + i + factory.回傳書籍章節檔案副檔名(uploadFile)));

                        // 維持原上傳檔名
                        // uploadFile.SaveAs(Server.MapPath("../書籍素材/" + b.b_Type + "素材/" + b.b_id + "/" + b.b_id + "-1/" + uploadFile.FileName));
                    }
                    i++;
                }
            }

            factory.儲存章節標題及檔名(b, bf, bc);
            factory.Create(b);
            factory.CreateBA(ba);
            factory.儲存到標籤資料表(bt);

            // 要帶到繼續新增章節的頁面使用
            string s = b.b_id + "|" + b.b_Type;

            return(s);
        }