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));
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }