public IHttpActionResult Add(AddBookRequestModel model) { if (model == null || !this.ModelState.IsValid) { if (model == null) { return(this.BadRequest("Model cannot be null!")); } return(this.BadRequest(this.ModelState)); } var categoryNames = model.CategoriesNames.Split(' ').Select(c => c.Trim()); var categoriesDb = this.categories .GetAll() .Where(c => categoryNames.Contains(c.Name)) .ToList(); var book = this.Mapper.Map <Book>(model); book.Categories = categoriesDb; this.books.Add(book); this.books.Save(); return(this.Created("", book)); }
public async Task <IActionResult> AddBook(AddBookRequestModel requestModel) { _logger.LogInformation("Add a book"); var newBook = _mapper.Map <Book>(requestModel); var updatedBook = await _bookService.AddBookAsync(newBook); return(Ok(updatedBook)); }
public async Task <IActionResult> CreateBook([FromForm] AddBookRequestModel request) { request.Myuser = User; var book = await _bookRepository.CreateBookAsync(request); if (book != null) { return(Ok(book)); } return(BadRequest()); }
public async Task <Book> CreateBookAsync(AddBookRequestModel request) { var categories = await _context.Categories .Where(x => request.CategoryId.Contains(x.CategoryId)).ToListAsync(); var bookCategory = new List <BookCategory>(); foreach (var category in categories) { bookCategory.Add(new BookCategory() { Category = category }); } Book book = new Book() { Title = request.Title, Description = request.Description, Price = request.Price, Quantity = request.Quantity, IsApproved = false, AuthorId = request.AuthorId, BookCategories = bookCategory }; if (request.Image != null && request.Image.Length > 0) { var fileName = Path.GetFileName(request.Image.FileName); var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\images", fileName); using (var fileSteam = new FileStream(filePath, FileMode.Create)) { await request.Image.CopyToAsync(fileSteam); } book.Image = fileName; } var applicationUserId = request.Myuser.Claims.Where(c => c.Type == "sub") .Select(c => c.Value).SingleOrDefault(); book.ApplicationUserId = Convert.ToInt64(applicationUserId); await _context.AddAsync(book); if (await _context.SaveChangesAsync() > 0) { return(book); } return(null); }
public IHttpActionResult Post(AddBookRequestModel model) { if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var currentUserId = User.Identity.GetUserId(); var newBookId = this.books.AddBook( model.Title, model.Author, model.Description, model.Isbn, model.Price, model.BookImageUrl, model.CategoryId, currentUserId ); return(this.Ok(newBookId)); }