public async Task TestUpdatetBook_InputInsertId_returnnothing()
        {
            Console.WriteLine("UpdateBookId : " + InsertId);
            Models.BookUpdate UpdateData = new Models.BookUpdate
            {
                BookID        = Convert.ToString(InsertId),
                BookName      = "TestUpdateBook",
                BookAuthor    = "Marz",
                BookPublisher = "南一",
                Note          = "112233",
                BoughtDate    = "2019/03/15",
                BookClassId   = "BK",
                BookStatusId  = "A",
                BookKeeperId  = null
            };
            await _bookService.UpdateBook(UpdateData);

            Models.BookUpdate GetData = await _bookService.GetUpdateBook(InsertId);

            Assert.AreEqual(UpdateData.BookName, GetData.BookName);
            Assert.AreEqual(UpdateData.BookAuthor, GetData.BookAuthor);
            Assert.AreEqual(UpdateData.BookPublisher, GetData.BookPublisher);
            Assert.AreEqual(UpdateData.Note, GetData.Note);
            Assert.AreEqual(UpdateData.BoughtDate, GetData.BoughtDate);
            Assert.AreEqual(UpdateData.BookClassId, GetData.BookClassId);
            Assert.AreEqual(UpdateData.BookStatusId, GetData.BookStatusId);
            Assert.AreEqual(UpdateData.BookKeeperId, GetData.BookKeeperId);
        }
        public async Task TestGetUpdateBook_InputInsertId_returnInsertData()
        {
            Models.BookUpdate GetData = await _bookService.GetUpdateBook(InsertId);

            Console.WriteLine("UpdateId : " + InsertId);
            Assert.AreEqual(InsertData.BookName, GetData.BookName);
            Assert.AreEqual(InsertData.BookAuthor, GetData.BookAuthor);
            Assert.AreEqual(InsertData.BookPublisher, GetData.BookPublisher);
            Assert.AreEqual(InsertData.Note, GetData.Note);
            Assert.AreEqual(InsertData.BoughtDate.ToString("yyyy/MM/dd"), GetData.BoughtDate);
            Assert.AreEqual(InsertData.BookClass, GetData.BookClassId);
        }
        public Models.BookUpdate ToModel(DataTable dt)
        {
            Models.BookUpdate result = new Models.BookUpdate();

            result.BookName      = dt.Rows[0]["書名"].ToString();
            result.BookAuthor    = dt.Rows[0]["作者"].ToString();
            result.BookPublisher = dt.Rows[0]["出版商"].ToString();
            result.Note          = dt.Rows[0]["內容簡介"].ToString();
            result.BoughtDate    = dt.Rows[0]["購書日期"].ToString();
            result.BookClassId   = dt.Rows[0]["圖書類別"].ToString();
            result.BookStatusId  = dt.Rows[0]["借閱狀態"].ToString();
            result.BookKeeperId  = dt.Rows[0]["借閱人"].ToString();

            return(result);
        }
        public void UpdateBook(int id, Models.BookUpdate updatedata)
        {
            string sql = @"
							BEGIN TRY
								BEGIN TRANSACTION		
									UPDATE BOOK_DATA 
									SET BOOK_NAME= @BOOK_NAME,
										BOOK_AUTHOR = @BOOK_AUTHOR,
										BOOK_PUBLISHER = @BOOK_PUBLISHER,
										BOOK_NOTE = @BOOK_NOTE,
										BOOK_BOUGHT_DATE = @BOOK_BOUGHT_DATE,
										BOOK_CLASS_ID = @BOOK_CLASS_ID,
										BOOK_STATUS = @BOOK_STATUS_ID,
										BOOK_KEEPER = @BOOK_KEEPER_ID,
										MODIFY_DATE = GETDATE()
									WHERE BOOK_ID = @BOOK_ID
								COMMIT TRANSACTION
							End TRY
							BEGIN CATCH
								SELECT
									ERROR_NUMBER() AS ErrorNumber,
									ERROR_SEVERITY() AS ErrorSeverity,
									ERROR_STATE() as ErrorState,
									ERROR_PROCEDURE() as ErrorProcedure,
									ERROR_LINE() as ErrorLine,
									ERROR_MESSAGE() as ErrorMessage
								ROLLBACK TRANSACTION
							END CATCH "                            ;



            using (SqlConnection conn = new SqlConnection(this.GetDBConnectionString()))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.Parameters.Add(new SqlParameter("@BOOK_NAME", updatedata.BookName));
                cmd.Parameters.Add(new SqlParameter("@BOOK_AUTHOR", updatedata.BookAuthor));
                cmd.Parameters.Add(new SqlParameter("@BOOK_PUBLISHER", updatedata.BookPublisher));
                cmd.Parameters.Add(new SqlParameter("@BOOK_NOTE", updatedata.Note));
                cmd.Parameters.Add(new SqlParameter("@BOOK_BOUGHT_DATE", updatedata.BoughtDate));                                                  //
                cmd.Parameters.Add(new SqlParameter("@BOOK_CLASS_ID", updatedata.BookClassId));                                                    //
                cmd.Parameters.Add(new SqlParameter("@BOOK_STATUS_ID", updatedata.BookStatusId));                                                  //
                cmd.Parameters.Add(new SqlParameter("@BOOK_KEEPER_ID", updatedata.BookKeeperId == null ? string.Empty : updatedata.BookKeeperId)); //
                cmd.Parameters.Add(new SqlParameter("@BOOK_ID", id));
                cmd.ExecuteNonQuery();
                conn.Close();
            }
        }
Example #5
0
        public ActionResult UpdateBook(Models.BookUpdate updatedata)
        {
            ViewBag.BookClass  = bookservice.GetDropdownList("GetClass");
            ViewBag.BookKeeper = bookservice.GetDropdownList("GetUpdateKeeper");
            ViewBag.BookStatus = bookservice.GetDropdownList("GetStatus");             //顯示DropDownList
            bool relation = ((updatedata.BookStatusId == "B" || updatedata.BookStatusId == "C") && (updatedata.BookKeeperId == "" || updatedata.BookKeeperId == null));

            if (ModelState.IsValid && !relation)
            {
                string LaterBookStatus = updatedata.BookStatusId;
                string IniBookStatus   = updatedata.IniStatus;
                if ((IniBookStatus == "A" || IniBookStatus == "U") && (LaterBookStatus == "B" || LaterBookStatus == "C"))
                {
                    Models.LendRecordInsert lendRecordInsert = new Models.LendRecordInsert();
                    lendRecordInsert.BookKeeperId = updatedata.BookKeeperId;
                    lendRecordInsert.BookID       = Convert.ToInt32(updatedata.BookID);
                    bookservice.InsertLendRecord(lendRecordInsert);
                }
                bookservice.UpdateBook(Convert.ToInt32(updatedata.BookID), updatedata);
                return(RedirectToAction("Index"));
            }
            return(View());
        }
        /// <summary>
        /// 修改書籍資料
        /// </summary>
        public void UpdateById(Models.BookUpdate arg)
        {
            string sql = @"UPDATE BOOK_DATA
                            SET
                                BOOK_NAME =@BOOK_NAME,
                                BOOK_AUTHOR =@BOOK_AUTHOR,
                                BOOK_PUBLISHER =@BOOK_PUBLISHER,
                                BOOK_NOTE =@BOOK_NOTE,
                                BOOK_BOUGHT_DATE =@BOOK_BOUGHT_DATE,
                                BOOK_CLASS_ID=@BOOK_CLASS_ID,
                                BOOK_STATUS=@BOOK_STATUS_ID,
                                BOOK_KEEPER=@KEEPER_ID
                            WHERE
                                BOOK_ID=@BOOK_ID;";

            string sqlAboutInsertLendRecord = @"INSERT INTO BOOK_LEND_RECORD(				
                                                      BOOK_ID, 
                                                    KEEPER_ID, 
                                                    LEND_DATE,
                                                    CRE_DATE,
                                                    MOD_DATE
                                                     )VALUES(
                                                    @BOOK_ID,
                                                    @KEEPER_ID,
                                                    @LEND_DATE,
                                                    @CRE_DATE,
                                                    @MOD_DATE) ";

            if (arg.KEEPER_ID != null)
            {
                sql = sql + sqlAboutInsertLendRecord;
            }
            using (SqlConnection conn = new SqlConnection(this.GetDBConnectionString()))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.Parameters.Add(new SqlParameter("@BOOK_NAME", arg.BOOK_NAME));
                cmd.Parameters.Add(new SqlParameter("@BOOK_AUTHOR", arg.BOOK_AUTHOR));
                cmd.Parameters.Add(new SqlParameter("@BOOK_PUBLISHER", arg.BOOK_PUBLISHER));
                cmd.Parameters.Add(new SqlParameter("@BOOK_NOTE", arg.BOOK_NOTE));
                cmd.Parameters.Add(new SqlParameter("@BOOK_BOUGHT_DATE", arg.BOOK_BOUGHT_DATE));
                cmd.Parameters.Add(new SqlParameter("@BOOK_CLASS_ID", arg.BOOK_CLASS_ID));
                cmd.Parameters.Add(new SqlParameter("@BOOK_STATUS_ID", arg.BOOK_STATUS_ID));
                cmd.Parameters.Add(new SqlParameter("@KEEPER_ID", arg.KEEPER_ID == null ? string.Empty : arg.KEEPER_ID));
                cmd.Parameters.Add(new SqlParameter("@BOOK_ID", arg.BOOK_ID));
                cmd.Parameters.Add(new SqlParameter("@LEND_DATE", DateTime.Now.ToShortDateString()));
                cmd.Parameters.Add(new SqlParameter("@CRE_DATE", DateTime.Now.ToShortDateString()));
                cmd.Parameters.Add(new SqlParameter("@MOD_DATE", DateTime.Now.ToShortDateString()));
                SqlTransaction tran = conn.BeginTransaction();
                cmd.Transaction = tran;
                try
                {
                    cmd.ExecuteNonQuery();//可以知道影響幾筆(int)
                    tran.Commit();
                }
                catch
                {
                    tran.Rollback();
                    throw;
                }
                finally
                {
                    conn.Close();
                }
            }
        }