public CopyDetailedForm(String isbn)
        {
            InitializeComponent();
            _listCopy = LoadCopy(isbn);
            _isbn = isbn;

            CatalogueBUS bus = new CatalogueBUS();
            _catalogue = bus.GetCatalogueById(_isbn);

            LoadDataToForm();
        }
        private void btnAddBook_Click(object sender, EventArgs e)
        {
            CatalogueBUS catalogueBUS = new CatalogueBUS();
            QuickAddCopyForm quickAddCopyForm = new QuickAddCopyForm(catalogueBUS.GetCatalogueById(_isbn));
            quickAddCopyForm.ShowDialog();

            CatalogueBUS bus = new CatalogueBUS();
            CatalogueDTO _tempDTO = bus.GetCatalogueById(_isbn);

            _catalogue.NumberOfCopies = _tempDTO.NumberOfCopies;
            _catalogue.AvailableCopies = _tempDTO.AvailableCopies;

            _listCopy = LoadCopy(_isbn);
            LoadDataToForm();
        }
        public string GetRandomCatalogue()
        {
            CatalogueBUS bus = new CatalogueBUS();
            CatalogueDTO dto = bus.GetRandomCatalogue();
            string rs = "";

            rs = "<h2>Sách ngẫu nhiên</h2>" +
                 "<p align=\"center\">" +
                 "<a href=\"/Search/BookDetail/" + dto.ISBN + "\">" +
                 "<img src=\"../../" + (dto.Image.Equals("") ? Options.ImageFolder + Options.NotAvaiable : Options.ImageFolder + dto.Image) + "\" alt=\"" + dto.Title +
                 "\" style=\"height:150px;width:150px;\">" +
                 "<br>" +
                 Constants.Truncate(dto.Title, 300) + "</a>" +
                 "</p>" +
                 dto.ShortDescription;

            return rs;
        }
        private void btnOk_Click(object sender, EventArgs e)
        {
            int NoC;
            bool isOK = int.TryParse(txtNumber.Text, out NoC);
            _barcodeList = Feature.GenerateBarcode(_catalogue, NoC);
            if (isOK && NoC>0)
            {
                foreach (string t in _barcodeList)
                {
                    CopyDTO copyDTO = new CopyDTO
                                          {
                                              Barcode = t,
                                              ISBN = _catalogue.ISBN,
                                              Status = (int) CopyStatus.AVAILABLE,
                                              CreatedDate = DateTime.Now,
                                              UpdatedDate = DateTime.Now
                                          };

                    CopyBUS copyBUS = new CopyBUS();
                    if (copyBUS.InsertCopy(copyDTO) == 0)
                    {
                        MessageBox.Show("Có lỗi trong quá trình thêm bản sao !!!");
                    }
                }

                _catalogue.NumberOfCopies += NoC;
                _catalogue.AvailableCopies += NoC;

                CatalogueBUS catalogueBUS = new CatalogueBUS();

                if (catalogueBUS.UpdateCatalogue(_catalogue, null) == 0)
                {
                    MessageBox.Show("Có lỗi trong quá trình thêm bản sao !!!");
                }

                Options.CountOfCopy += NoC;
                Options.SaveSystemVariable();
            }
            this.Close();
        }
        // By Author
        public List<SearchBookResultDTO> SearchBooksByAuthor(SearchBookDTO dto)
        {
            SearchBookDAO sbDAO = new SearchBookDAO();
            List<SearchBookResultDTO> result = new List<SearchBookResultDTO>();
            CatalogueBUS bus = new CatalogueBUS();

            int pageSize = Options.NumberOfRecord;
            int rowStart = 0;
            if (dto.PageNumber == 1)
            {
                rowStart = 1;
            }
            else
            {
                rowStart = (dto.PageNumber - 1) * pageSize;
            }
            int rowEnd = rowStart - 1 + pageSize;
            DataTable dt;

            dt = sbDAO.SearchBooksByAuthor(dto.Info1, rowStart, rowEnd);

            foreach (DataRowView record in dt.DefaultView)
            {
                result.Add(new SearchBookResultDTO()
                {
                    ISBN = record["ISBN"].ToString(),
                    AuthorName = record["AuthorName"].ToString(),
                    CategoryName = record["CategoryName"].ToString(),
                    Image = record["Image"].ToString(),
                    PublisherName = record["PublisherName"].ToString(),
                    Title = record["Title"].ToString(),
                    ShortDescription = record["ShortDescription"].ToString(),
                    No = int.Parse(record["No"].ToString())
                });
            }
            return result;
        }
 public ActionResult BookDetail(string id)
 {
     CatalogueBUS bus = new CatalogueBUS();
     return View(bus.GetCatalogueById(id));
 }
        private void ribeCatalogueAction_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            CatalogueBUS bus = new CatalogueBUS();
            if (e.Button.Kind == ButtonPredefines.Ellipsis)
            {
                SearchBookResultDTO dto = (SearchBookResultDTO)abgCatalogue.GetFocusedRow();
                EditCatalogue(dto);
            }
            else if (e.Button.Kind == ButtonPredefines.Delete)
            {
                var rs = MessageBox.Show("Bạn có chắc là muốn xóa đầu sách này ko??", "", MessageBoxButtons.YesNo);

                if (rs == DialogResult.Yes)
                {
                    SearchBookResultDTO dto = (SearchBookResultDTO)abgCatalogue.GetFocusedRow();
                    CatalogueDTO cdto = bus.GetCatalogueById(dto.ISBN);
                    DeleteCatalogue(cdto);
                }

            }
        }
 public void DeleteCatalogue(CatalogueDTO cdto)
 {
     CatalogueBUS catalogueBus = new CatalogueBUS();
     if (catalogueBus.DeleteCatalogue(cdto, null) == 1)
     {
         abgCatalogue.DeleteSelectedRows();
     }
     else
     {
         MessageBox.Show("Không thể xóa được đầu sách này khỏi CSDL =.='");
     }
 }
        public void DeleteCatalogue()
        {
            if (abgCatalogue.GetFocusedRow() != null)
            {
                var rs = MessageBox.Show("Bạn có chắc là muốn xóa đầu sách này ko??", "", MessageBoxButtons.YesNo);

                if (rs == DialogResult.Yes)
                {
                    CatalogueBUS bus = new CatalogueBUS();
                    SearchBookResultDTO dto = (SearchBookResultDTO) abgCatalogue.GetFocusedRow();
                    CatalogueDTO cdto = bus.GetCatalogueById(dto.ISBN);
                    DeleteCatalogue(cdto);
                }
            }
            else
            {
                MessageBox.Show("Hãy chọn 1 đầu sách để xoá.");
            }
        }
        public ActionResult RegisterRental(string id)
        {
            CatalogueBUS bus = new CatalogueBUS();
            CatalogueDTO cat = bus.GetCatalogueById(id);
            Feature f = new Feature();
            UserDTO user = (UserDTO) Session["USER"];

            if(f.AddRegister(new BookRegisterDTO()
                              {
                                  BookTitle = cat.Title,
                                  ISBN = id,
                                  Note = "",
                                  Status = BookRegisterStatus.NEW,
                                  UserId = user.UserId,
                                  Username = user.Username,
                                  CreatedDate = DateTime.Now,
                                  UpdatedDate = DateTime.Now,
                                  RegisterDate = DateTime.Now
                              }))
            {
                Log.Info("Create a new Register");
            }
            else
            {
                ViewData["Message"] = "Có lỗi xảy ra lúc đăng ký mượn sách, hãy liên hệ với thư viện!";
                return View("Error");
            }

            return RedirectToAction("BookDetail", "Search", new {id = id});
        }
        private void ribeAction_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            if (e.Button.Kind == ButtonPredefines.Ellipsis)
            {

            }
            else
            {
                if (e.Button.Kind == ButtonPredefines.Delete)
                {
                    CopyBUS copyBus = new CopyBUS();
                    CopyDTO dto = (CopyDTO)grvCopyDetail.GetFocusedRow();
                    if (dto.Status == (int)CopyStatus.AVAILABLE)
                    {
                        if (copyBus.DeleteCopy(dto, null) == 1)
                        {
                            _listCopy.Remove(dto);
                            _copyResult.Remove(dto);
                            grdDetailedCopy.RefreshDataSource();

                            _catalogue.NumberOfCopies--;
                            if (dto.Status == (int) CopyStatus.AVAILABLE)
                            {
                                _catalogue.AvailableCopies--;
                            }

                            CatalogueBUS bus = new CatalogueBUS();
                            if (bus.UpdateCatalogue(_catalogue, null) == 0)
                            {
                                MessageBox.Show("Có lỗi trong quá trình xóa bản sao !!!");
                            }
                            MessageBox.Show("Đã xóa bản sao thành công !!!");
                        }
                        else
                        {
                            MessageBox.Show("Xóa bản sao thất bại !!!");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Không thể xoá bản sao này vì bản sao đã bị xoá hoặc đang được mượn!");
                    }
                }
            }
        }