Example #1
0
        public async Task <IActionResult> Create([FromBody] CreateBookModel model)
        {
            model.Name = model.Name.ToLower();
            if (await _dbContext.Books.AnyAsync(f => f.Name == model.Name))
            {
                return(BadRequest("duplicated name"));
            }

            await _dbContext.Books.AddAsync(new Infrastructure.Book()
            {
                Name         = model.Name,
                Code         = model.Code,
                SectionId    = model.SectionId,
                Note         = model.Note,
                AuthorName   = model.AuthorName,
                NamePrinting = model.NamePrinting,
                Date         = model.Date,
                Path         = model.Path,
                Photos       = model.Photos,
                ShelfNumber  = model.ShelfNumber
            });

            await _dbContext.SaveChangesAsync();

            return(Ok("Book successfuly created"));
        }
Example #2
0
        public ActionResult CreateBook(CreateBookModel createBookModel)
        {
            try
            {
                List <Genre> genres = createBookModel.CheckedGenreObjects.Where(genre => genre.Checked).Select(genre => context.Genres.First(g => g.Id == genre.Id)).ToList();

                Book book = new Book
                {
                    Author      = createBookModel.Author,
                    PageCount   = createBookModel.PageCount,
                    Year        = createBookModel.Year,
                    CountryId   = createBookModel.CountryId,
                    Description = createBookModel.Description,
                    Name        = createBookModel.Name,
                    PurchaseUrl = createBookModel.PurchaseUrl,
                    Genres      = genres
                };

                string fileName = Guid.NewGuid().ToString() + Path.GetExtension(createBookModel.File.FileName);
                string path     = Path.Combine(Server.MapPath("~/Content/BookImages"), fileName);
                createBookModel.File.SaveAs(path);

                book.ImageUrl = "../Content/BookImages/" + fileName;

                context.Books.Add(book);
                context.SaveChanges();
            }
            catch
            {
            }
            return(RedirectToAction("Books"));
        }
Example #3
0
 public IActionResult AddBook(
     [Bind(nameof(CreateBookModel.Title),
           nameof(CreateBookModel.imageFile),
           nameof(CreateBookModel.Description),
           nameof(CreateBookModel.Edition))] CreateBookModel model)
 {
     if (ModelState.IsValid)
     {
         try
         {
             model.Create();
             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 #4
0
        public IActionResult AddBook(CreateBookModel model)
        {
            if (ModelState.IsValid)
            {
                _bookRepository.AddBook(model);
            }

            return(RedirectToAction("Index", "Home"));
        }
        /// <inheritdoc />
        public async Task <Guid> Create(CreateBookModel model)
        {
            model.CreationDateTimeOffset = DateTimeOffset.Now;
            var book = _mapper.Map <Book>(model);

            _context.Books.Add(book);
            await _context.SaveChangesAsync();

            return(book.BookGuid);
        }
        public IActionResult Post([FromBody] CreateBookModel model)
        {
            var userId = this.GetAuthorizeUserId();

            var book = TinyMapper.Map <Book>(model);

            var bookId = this._bookRepository.AddBook(userId, book);

            return(Created(string.Format("/api/books/{0}", book.Id), TinyMapper.Map <BookModel>(book)));
        }
        public async Task <IActionResult> Create(CreateBookModel book)
        {
            Book model    = _mapper.Map <CreateBookModel, Book>(book);
            Book dbObject = await _bookService.Create(model);

            if (dbObject == null)
            {
                return(BadRequest());
            }
            return(Created("Created", _mapper.Map <Book, SuccessBookModel>(dbObject)));
        }
Example #8
0
        public async Task <IActionResult> CreateBook(CreateBookModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var key = await _dataService.CreateBookAsync(model.Name);

            return(RedirectToAction("Index", "Book", key));
        }
Example #9
0
 public bool Create([FromBody] CreateBookModel model)
 {
     Context.BookRepos.Add(new BookRepo()
     {
         Name        = model.Name,
         Price       = model.Price,
         PublishDate = model.PublishDate,
         Description = model.Description
     });
     return(Context.SaveChanges() > 0);
 }
Example #10
0
        public Guid CreateBook(Guid authorId, CreateBookModel model)
        {
            var parent  = _repository.Get(authorId);
            var newBook = new Book
            {
                Genre   = model.Genre,
                Title   = model.Title,
                Summary = model.Summary,
            };

            parent.Books.Add(newBook);
            return(newBook.Id);
        }
Example #11
0
        public JsonResult Create(CreateBookModel model)
        {
            var book = model.ToDomain();

            using (var bookRepo = new BookRepository())
            {
                bookRepo.Create(book);
            }

            return(new JsonResult {
                Data = new { IsOk = true }
            });
        }
Example #12
0
        public IActionResult Create(CreateBookModel model) //post
        {
            this.ViewData["showError"] = "none";

            if (!ModelState.IsValid)
            {
                this.ViewData["showError"] = "block";
                this.ViewData["error"]     = "write the correct data";
                return(this.View());
            }

            this.books.Create(model.Title, model.Year, model.Author);

            return(this.RedirectToAction(nameof(Create)));
        }
Example #13
0
        public IActionResult Create([FromBody] CreateBookModel createBookModel)
        {
            if (this.ModelState.IsValid)
            {
                var result = this.bookService.CreateBook(createBookModel.Title, createBookModel.Description, createBookModel.Price, createBookModel.Copies, createBookModel.Edition, createBookModel.AgeRestriction, createBookModel.ReleaseDate, createBookModel.AuthorId, createBookModel.Categories);

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

                return(Ok(result));
            }

            return(BadRequest(this.ModelState));
        }
Example #14
0
        public void AddBook(CreateBookModel model)
        {
            Console.WriteLine(model.BookFile.FileName);
            bool isWindows = System.Runtime.InteropServices.RuntimeInformation
                             .IsOSPlatform(OSPlatform.Windows);
            string FilePath;
            string PhotoPath;
            string pathToWrite;

            if (isWindows == true)
            {
                FilePath    = "Books\\" + model.Name + ".pdf";
                PhotoPath   = "wwwroot\\images\\books\\" + model.Type + "\\" + model.Name + ".jpg";
                pathToWrite = "../images/books/" + model.Type + "/" + model.Name + ".jpg";
            }
            else
            {
                FilePath    = "Books/" + model.Name + ".pdf";
                PhotoPath   = "wwwroot/images/books/" + model.Type + "/" + model.Name + ".jpg";
                pathToWrite = "../images/books/" + model.Type + "/" + model.Name + ".jpg";
            }
            if (model.BookFile.Length > 0)
            {
                using (var fileStream = new FileStream(FilePath, FileMode.Create))
                {
                    model.BookFile.CopyTo(fileStream);
                }
            }
            if (model.PhotoPath.Length > 0)
            {
                using (var fileStream = new FileStream(PhotoPath, FileMode.Create))
                {
                    model.PhotoPath.CopyTo(fileStream);
                }
            }

            Book book = Book.Create(model.Name, model.Type, model.Author, FilePath, pathToWrite, model.Description, DateTime.Now);

            _databaseService.Books.Add(book);
            _databaseService.SaveChanges();
        }
Example #15
0
        public async Task <Response <Book> > Create(CreateBookModel bookViewModel)
        {
            var c1 = _clientFactory.CreateClient();
            var a  = await c1.GetDiscoveryDocumentAsync("https://localhost:44338/");

            var tokenResponse = await c1.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest
            {
                Address      = a.TokenEndpoint,
                ClientId     = "my_client1_id",
                ClientSecret = "my_client1_secret".ToSha256(),
                Scope        = "MyApi2"
            });

            var c2 = _clientFactory.CreateClient();

            c2.SetBearerToken(tokenResponse.AccessToken);

            c2.BaseAddress = new Uri(_apiBaseUrl);

            //var ad = c2.PostAsync("books", new ReadOnlyMemoryContent())


            return(null);
        }
Example #16
0
        public ActionResult Index(CreateBookModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var result = Service.Create(new Booking()
                    {
                        CreatedOn    = DateTime.Now,
                        Email        = model.Email,
                        Name         = model.Name,
                        NameOfSchool = model.NameOfSchool,
                        Telephone    = model.Telephone,
                        What         = model.What,
                        When         = model.When,
                        YourLocation = model.YourLocation
                    });

                    if (result.Success)
                    {
                        model.BookingId = result.Entity.BookingId;

                        Dictionary <Func <CreateBookModel, string>, string> properties = new Dictionary <Func <CreateBookModel, string>, string>();

                        properties.Add((x) => x.BookingId.ToString(), "Id");
                        properties.Add((x) => x.Name, "Name");
                        properties.Add((x) => x.Email, "Email");
                        properties.Add((x) => x.Telephone, "Telephone");
                        properties.Add((x) => x.NameOfSchool, "Name Of School");
                        properties.Add((x) => x.YourLocation, "Location");
                        properties.Add((x) => x.When, "When they want it");
                        properties.Add((x) => x.What, "What they want");

                        var sb = new StringBuilder();
                        sb.AppendLine("Booking from Booking form is as follows:");
                        sb.AppendLine();
                        foreach (var item in properties)
                        {
                            sb.AppendFormat("{0} : {1}", item.Value, item.Key.Invoke(model));
                            sb.AppendLine();
                            sb.AppendLine();
                        }

                        var body = sb.ToString();

                        EmailHelper.SendBookingEmail(body);

                        return(RedirectToAction("BookingSuccess"));
                    }
                    else
                    {
                        if (result.Exception != null)
                        {
                            ModelState.AddModelError("Error:", "There was an error saving your booking details : " + result.Exception);
                        }
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("Error:", "There was an error sending your booking details : " + ex.Message);
                    return(View(model));
                }
            }

            return(View(model));
        }
Example #17
0
        /// <inheritdoc />
        public async Task ParsePiter()
        {
            var books = _piterParser.GetPiter();


            #region Создание/Получение издательства

            Guid publishingGuid = Guid.Empty;

            CreatePublishingModel publishing = new CreatePublishingModel();
            publishing.PublishingGuid = Guid.NewGuid();
            publishing.Name           = "Издательский дом 'Питер'";
            publishing.City           = "г. Санкт-Петербург";
            publishing.Country        = "Россия";
            publishing.House          = "дом № 29, литера А";
            publishing.Postcode       = 194044;
            publishing.State          = "Ленинградская обл.";
            publishing.Street         = "Большой Сампсониевский пр-кт";

            var searchPublishing = await _publishingsService.Search(publishing.Name);

            if (searchPublishing.Any())
            {
                var publishingModel = await _publishingsService.Read(searchPublishing.First().PublishingGuid);

                publishingGuid = publishingModel.PublishingGuid;
            }
            else
            {
                publishingGuid = await _publishingsService.Create(publishing);
            }

            #endregion

            foreach (var book in books)
            {
                try
                {
                    CreateBookModel createBookModel = new CreateBookModel();

                    // Издательство и авторы
                    createBookModel.CreationDateTimeOffset = DateTimeOffset.Now;
                    createBookModel.PublishingGuid         = publishingGuid;
                    createBookModel.AuthorGuid             = new List <Guid>();

                    #region Создание/Добавление автора

                    foreach (var authorsName in book.AuthorsNames)
                    {
                        var fullname             = authorsName.Split(' ');
                        CreateAuthorModel author = new CreateAuthorModel();
                        author.AuthorGuid = Guid.NewGuid();
                        author.Surname    = fullname[0];
                        author.Name       = fullname[1];
                        if (fullname.Length == 3)
                        {
                            author.Patronymic = fullname[2];
                        }

                        author.Note = "Автор книг: \"" + book.Title + "\"";

                        var searchAuthor = await _authorsService.Search(author.Surname);

                        if (searchAuthor.Any())
                        {
                            foreach (var item in searchAuthor)
                            {
                                UpdateAuthorModel updateAuthorModel = new UpdateAuthorModel();
                                updateAuthorModel.AuthorGuid = item.AuthorGuid;
                                updateAuthorModel.Name       = item.Name;
                                updateAuthorModel.Surname    = item.Surname;
                                updateAuthorModel.Patronymic = item.Patronymic;
                                if (!item.Note.Contains(book.Title))
                                {
                                    updateAuthorModel.Note = item.Note + ", \"" + book.Title + "\"";
                                }

                                await _authorsService.Update(updateAuthorModel);

                                createBookModel.AuthorGuid.Add(item.AuthorGuid);
                            }
                        }
                        else
                        {
                            var guid = await _authorsService.Create(author);

                            createBookModel.AuthorGuid.Add(guid);
                        }
                    }

                    #endregion

                    #region Создание/Добавление сферы применения

                    // Сфера применения
                    CreateTechnologyModel technology = new CreateTechnologyModel();
                    technology.TechnologyGuid = Guid.NewGuid();
                    technology.Name           = book.TechnologiesName;
                    technology.Description    = "Серия книг: " + technology.Name;
                    technology.Language       = "-";

                    var searchTechnologies = await _technologiesService.Search(technology.Name);

                    if (searchTechnologies.Any())
                    {
                        var technologyModel =
                            await _technologiesService.Read(searchTechnologies.First().TechnologyGuid);

                        createBookModel.TechnologyGuid = technologyModel.TechnologyGuid;
                    }
                    else
                    {
                        createBookModel.TechnologyGuid = await _technologiesService.Create(technology);
                    }

                    #endregion

                    createBookModel.BookGuid   = Guid.NewGuid();
                    createBookModel.Title      = book.Title;
                    createBookModel.Annotation = book.Annotation;
                    createBookModel.Cover      = book.Cover;
                    try
                    {
                        createBookModel.NumberOfPages = Convert.ToInt32(book.NumberOfPages);
                    }
                    catch (Exception)
                    {
                        createBookModel.NumberOfPages = 0;
                    }

                    createBookModel.Format = book.Format;
                    createBookModel.Cost   =
                        "Электронная книга: " + book.CostDigital + ";\nБумажная книга: " + book.CostPaper;

                    try
                    {
                        createBookModel.Year = Convert.ToInt32(book.Year);
                    }
                    catch (Exception)
                    {
                        createBookModel.Year = 2019;
                    }

                    createBookModel.BuyUri   = book.BuyUri;
                    createBookModel.ImageUri = book.ImageUri;

                    var result = await _booksService.Create(createBookModel);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }
        }
Example #18
0
        public IActionResult Create(Guid authorId, [FromBody] CreateBookModel model)
        {
            var newlyCreated = BookService.CreateBook(authorId, model);

            return(CreatedAtRoute("GetBook", new { authorId, bookid = newlyCreated }, newlyCreated));
        }
Example #19
0
        public async Task <IActionResult> Post(CreateBookModel model)
        {
            await _bookService.InsertAsync(model);

            return(Ok());
        }
Example #20
0
        public IActionResult AddBook()
        {
            var model = new CreateBookModel();

            return(View(model));
        }
Example #21
0
        public async Task InsertAsync(CreateBookModel model)
        {
            var entity = _mapper.Map <Book>(model);

            await _bookRepository.InsertAndSaveAsync(entity);
        }
Example #22
0
 public IActionResult AddBook(CreateBookModel model)
 {
     model.Create();
     return(View(model));
 }
Example #23
0
        public async Task <IActionResult> CreateBook(CreateBookModel bookModel)
        {
            await _booksService.Create(bookModel);

            return(RedirectToAction(nameof(ReadAll)));
        }