Example #1
0
 public IActionResult EditBook(
     [Bind(nameof(EditBookModel.Id),
           nameof(EditBookModel.Title),
           nameof(CreateBookModel.imageFile),
           nameof(EditBookModel.Description),
           nameof(EditBookModel.Edition))] EditBookModel model)
 {
     if (ModelState.IsValid)
     {
         try
         {
             model.Edit();
             model.Response = new ResponseModel("Book creation successful.", ResponseType.Success);
             return(RedirectToAction("Index"));
         }
         catch (DuplicationException ex)
         {
             model.Response = new ResponseModel(ex.Message, ResponseType.Failure);
             // error logger code
         }
         catch (Exception ex)
         {
             model.Response = new ResponseModel("Book creation failued.", ResponseType.Failure);
             // error logger code
         }
     }
     return(View(model));
 }
Example #2
0
        public IActionResult EditBook(int id)
        {
            var model = new EditBookModel();

            model.Load(id);
            return(View(model));
        }
Example #3
0
        public DataTable UpdateBook(EditBookModel editBookModel)
        {
            SqlParameter[] sqlParameter = new SqlParameter[6];

            sqlParameter[0]       = new SqlParameter("@BookName", SqlDbType.VarChar);
            sqlParameter[0].Value = Convert.ToString(editBookModel.BookName);

            sqlParameter[1]       = new SqlParameter("@ReleaseDate", SqlDbType.DateTime);
            sqlParameter[1].Value = editBookModel.ReleaseDate;

            sqlParameter[2]       = new SqlParameter("@Author", SqlDbType.VarChar);
            sqlParameter[2].Value = Convert.ToString(editBookModel.Author);


            sqlParameter[3]       = new SqlParameter("@Genre", SqlDbType.VarChar);
            sqlParameter[3].Value = Convert.ToString(editBookModel.Genre);

            sqlParameter[4]       = new SqlParameter("@Price", SqlDbType.Decimal);
            sqlParameter[4].Value = Convert.ToDecimal(editBookModel.Price);

            sqlParameter[5]       = new SqlParameter("@Id", SqlDbType.Int);
            sqlParameter[5].Value = Convert.ToInt32(editBookModel.Id);

            return(dBConnection.executeStoredProcedure("EditBookDetail", sqlParameter));
        }
Example #4
0
        public ActionResult EditBook(int Id)
        {
            DataTable            dt             = libraryService.BookList(Id);
            List <EditBookModel> _editBookModel = CommonService.ConvertToList <EditBookModel>(dt);
            EditBookModel        editBookModel  = _editBookModel.Find(uid => uid.Id == Id);

            return(View(editBookModel));
        }
Example #5
0
        public ActionResult EditBook(int bookId)
        {
            var           context    = new AppDbContext();
            Book          book       = context.Books.Find(bookId);
            var           errMsg     = TempData["ErrorMessage"] as string;
            List <string> bookImages = new List <string>();

            foreach (BookImage b in book.ImagesForBook)
            {
                string imageSrc = "/Images/noFoto.png";

                var    firstImage  = b;
                string imageBase64 = Convert.ToBase64String(firstImage.Image);
                imageSrc = string.Format("data:image/gif;base64,{0}", imageBase64);
                Debug.WriteLine(imageSrc);
                bookImages.Add(imageSrc);
            }
            List <float>  deliveryPrices            = new List <float>();
            List <string> deliveryNames             = new List <string>();
            Dictionary <string, float> deliveryDict = new Dictionary <string, float>();

            foreach (var d in book.DeliveryforBook)
            {
                deliveryPrices.Add(d.Price);
                deliveryNames.Add(d.Name);
            }

            deliveryDict.Add("Odbiór osobisty", 0.0f);
            deliveryDict.Add("Przesyłka pocztowa - priorytetowa", 12.0f);
            deliveryDict.Add("Przesyłka pocztowa - ekonomiczna", 10.0f);
            deliveryDict.Add("Przesyłka kurierska", 15.0f);
            var editBook = new EditBookModel
            {
                Id              = bookId,
                Author          = book.Author,
                Title           = book.Title,
                Genre           = book.Genre,
                Description     = book.Description,
                Price           = book.Price,
                Publisher       = book.Publisher,
                Changeable      = book.Changeable,
                PublicationDate = book.PublicationDate,
                BookImages      = bookImages,
                Seller          = book.Seller,
                DeliveryName    = deliveryNames,
                DeliveryPrice   = deliveryPrices,
                DeliveryDict    = deliveryDict,
            };


            if (errMsg != null)
            {
                ModelState.AddModelError("", errMsg);
            }

            return(View(editBook));
        }
        public void Will_Add_New_Stories_With_Title_Into_Entity()
        {
            var book  = new Book();
            var model = new EditBookModel();

            model.NewStories.First().Title = "Great story!";
            mapper.MergeEntityWithModel(book, model);
            Assert.That(book.Stories.Single().Value.Title, Is.EqualTo("Great story!"));
        }
        public void Will_Throw_Mapping_Exception_If_Model_Refers_To_Nonexistent_Translator()
        {
            var book  = new Book();
            var model = new EditBookModel {
                TranslatorIds = new[] { 1234 }
            };

            Assert.Throws <MappingException>(() => mapper.MergeEntityWithModel(book, model));
        }
        public void Can_Merge_ReviewText_Into_Entity()
        {
            var book  = new Book();
            var model = new EditBookModel {
                ReviewText = "Terrible book."
            };

            mapper.MergeEntityWithModel(book, model);
            Assert.That(book.ReviewText, Is.EqualTo(model.ReviewText));
        }
        public void Will_Throw_When_Provided_With_NonExisting_Editor_Id()
        {
            var model = new EditBookModel {
                EditorIds = new[] { -42 }
            };

            var book = new Book();

            Assert.Throws <MappingException>(() => mapper.MergeEntityWithModel(book, model));
        }
Example #10
0
        // GET: AddBook
        // 新增 Book 的表單 Controller
        public ActionResult AddBook()
        {
            AddBookFactory factory = new AddBookFactory();
            EditBookModel  ab      = new EditBookModel();

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

            return(View(ab));
        }
        public IActionResult NewBook()
        {
            var model = new EditBookModel()
            {
                AvailableLanguages = LanguagesService.GetAll().ToArray(),
                BookLanguageID     = AccountService.GetLogonAccount().LearningLanguageID ?? 0,
            };

            return(View(model));
        }
        public void Will_Create_New_Story_If_It_Did_Not_Exist_Yet()
        {
            var book  = new Book();
            var model = new EditBookModel()
            {
                Stories = new[] { new EditStoryModel() }.ToList()
            };

            mapper.MergeEntityWithModel(book, model);
            Assert.That(book.Stories.Count(), Is.EqualTo(1));
        }
        public void Will_Default_Have_Empty_EditorIds_List()
        {
            // This test is here because MVC will instantiate a default model upon
            // posting a form to an action, and the mapper needs an empty list instead
            // of a null value.
            var model = new EditBookModel();
            var book  = new Book();

            mapper.MergeEntityWithModel(book, model);
            Assert.That(book.Editors.Count(), Is.EqualTo(0));
        }
        public void Will_Set_Null_Publisher_If_Model_Contains_NonExistent_PublisherId()
        {
            var model = new EditBookModel {
                PublisherId = -1
            };
            var entity = new Book();

            mapper.MergeEntityWithModel(entity, model);

            Assert.That(entity.Publisher, Is.Null);
        }
        public void Save_Will_Return_Edit_View_If_State_Invalid()
        {
            controller.ModelState.AddModelError("", "");
            var model = new EditBookModel {
                Id = 13
            };
            var result = (ViewResult)controller.Save(model);

            Assert.That(result.ViewName, Is.EqualTo("Edit"));
            Assert.That(result.Model, Is.EqualTo(model));
        }
        public void Can_Create_New_Item()
        {
            var newBookModel = new EditBookModel();

            var result = controller.Create(newBookModel);

            Assert.That(result, Is.InstanceOf <RedirectToRouteResult>());
            var redirectResult = (RedirectToRouteResult)result;

            Assert.That(redirectResult.RouteValues.ContainsKey("id"));
        }
        public IActionResult CompleteNewBook(EditBookModel model)
        {
            if (!HandleErrorsBeforeCompletingBook(model))
            {
                return(View("NewBook", model));
            }

            // Add book
            var book = new Book(model.BookName, LanguagesService.Get(model.BookLanguageID), model.BookDescription);

            book = BooksService.Add(book);
            return(RedirectToAction("Book", new { id = book.ID }));
        }
        public void Save_Action_Will_Redirect_To_Details_For_New_Item()
        {
            var model = new EditBookModel {
                Id = 0
            };

            var result = controller.Save(model);

            Assert.That(result, Is.InstanceOf <RedirectToRouteResult>());
            var redirectResult = (RedirectToRouteResult)result;

            Assert.That(redirectResult.RouteValues["action"], Is.EqualTo("Details"));
        }
Example #19
0
        public IActionResult Update(Guid id, [FromBody] EditBookModel editBookModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(BadRequest(this.ModelState.AsResource()));
            }

            var mappedBook = this._mapper.Map <Book>(editBookModel);

            this._books.Update(id, mappedBook);

            return(NoContent());
        }
Example #20
0
        //--------------------------------------------------------EDIT--------------------------------------------------------
        public ActionResult Edit(string id)
        {
            if (Session["user"] == null)
            {
                return(RedirectToAction("Index"));
            }

            EditBookModel obj = new EditBookModel();

            obj.Book    = Book.getBook(id);
            obj.Authors = Author.getAuthorList();
            return(View(obj));
        }
Example #21
0
        // 修改章節
        public ActionResult EditChapters(int?bc_id)
        {
            EditBookFactory factory = new EditBookFactory();

            if (bc_id != null)
            {
                EditBookModel eb = factory.帶出要修改的章節資訊((int)bc_id);
                return(View(eb));
            }
            else
            {
                return(RedirectToAction("EditChaptersList"));
            }
        }
        public async Task EditAsync(int id, EditBookModel bookModel)
        {
            var book = this.dbContext.Books.Find(id);

            book.Title          = bookModel.Title;
            book.Description    = bookModel.Description;
            book.Price          = bookModel.Price;
            book.Copies         = bookModel.Copies;
            book.Edition        = bookModel.Edition;
            book.AgeRestriction = bookModel.AgeRestriction;
            book.ReleaseDate    = bookModel.ReleaseDate;
            book.AuthorId       = bookModel.AuthorId;

            await this.dbContext.SaveChangesAsync();
        }
        public void Will_Set_Publisher_If_Model_Contains_Some_PublisherId()
        {
            var model = new EditBookModel()
            {
                PublisherId = somePublisher.Id
            };
            var entity = new Book();

            publishers.Add(somePublisher);

            mapper.MergeEntityWithModel(entity, model);

            Assert.That(entity.Publisher, Is.Not.Null);
            Assert.That(entity.Publisher.Id, Is.EqualTo(somePublisher.Id));
        }
Example #24
0
        public async Task <string> Upload(IFileListEntry file, EditBookModel model)
        {
            string uniqueName   = Guid.NewGuid().ToString() + "_" + file.Name;
            var    path         = Path.Combine(hostEnvironment.WebRootPath, "images", uniqueName);
            var    memorystream = new MemoryStream();
            await file.Data.CopyToAsync(memorystream);


            using (FileStream fileStream = new FileStream(path, FileMode.Create, FileAccess.Write))
            {
                memorystream.WriteTo(fileStream);
            }

            uniqueName = "images/" + uniqueName;
            return(uniqueName);
        }
Example #25
0
        // 要編輯的書籍的 <form> 表單
        public ActionResult EditBookData(string b_id)
        {
            if (b_id != null)
            {
                EditBookFactory factory = new EditBookFactory();

                EditBookModel eb = factory.帶出要修改的書籍資訊(b_id);
                eb.Tags字串     = factory.列出書籍Tags(b_id);
                eb.出版社編號加名稱列表 = factory.傳回出版社編號名稱列表();
                eb.作者編號加名稱列表  = factory.傳回作者編號名稱列表();
                eb.列出本書的作者    = factory.回傳該本書籍的作者List(b_id);

                return(View(eb));
            }

            return(RedirectToAction("List"));
        }
        public void Domain_Book_Will_Get_Editors_From_Model()
        {
            people.Add(asimov);
            people.Add(wyndham);

            var model = new EditBookModel()
            {
                EditorIds = people.Items.Select(p => p.Id).ToArray()
            };

            var book = new Book();

            mapper.MergeEntityWithModel(book, model);

            Assert.That(book.Editors, Contains.Item(asimov));
            Assert.That(book.Editors, Contains.Item(wyndham));
        }
        public IActionResult Edit(int id)
        {
            var book = BooksService.Get(id);

            if (book == default)
            {
                ShowErrorViewForNotFoundBook(id);
            }

            var model = new EditBookModel()
            {
                AvailableLanguages = LanguagesService.GetAll().ToArray(),
                BookID             = id,
                BookName           = book.Name,
                BookDescription    = book.Description,
                BookLanguageID     = book.Language.ID,
            };

            return(View(model));
        }
        private bool HandleErrorsBeforeCompletingBook(EditBookModel model)
        {
            if (model.BookLanguageID == 0)
            {
                model.AlertType    = AlertType.Error;
                model.AlertMessage = "Language must be set";
            }
            if (string.IsNullOrEmpty(model.BookName))
            {
                model.AlertType    = AlertType.Error;
                model.AlertMessage = "Book name cannot be empty";
            }
            if (model.AlertType == AlertType.Error)
            {
                model.AvailableLanguages = LanguagesService.GetAll().ToArray();
                return(false);
            }

            return(true);
        }
Example #29
0
        public async Task <IActionResult> Edit(BookKeyModel key, EditBookModel model)
        {
            var book = await GetBookAsync(key);

            if (book == null)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (book.Name != model.Name)
            {
                await _dataService.RenameBookAsync(book.BookId, model.Name);
            }

            return(RedirectToAction("Index"));
        }
Example #30
0
        public IActionResult Edit(int?id, [FromBody] EditBookModel editBookModel)
        {
            if (id.HasValue && this.bookService.BookExists(id.Value))
            {
                if (this.ModelState.IsValid)
                {
                    var result = this.bookService.Edit(id.Value, editBookModel.Title, editBookModel.Description, editBookModel.Price, editBookModel.Copies, editBookModel.Edition, editBookModel.AgeRestriction, editBookModel.ReleaseDate, editBookModel.AuthorId);

                    if (result is null)
                    {
                        return(BadRequest());
                    }

                    return(Ok(result));
                }

                return(BadRequest(this.ModelState));
            }

            return(NotFound(InvalidBookRequestError));
        }