private void ModifyPublisher(Book book, SimpleBook sBook, LibraryDataBase db) { if (sBook.Publisher == book.Publisher.PublisherName) { return; } if (book.Publisher.PublisherName != "") // si no es un libro nuevo { book.Publisher.QuantityBooks--; // Le resto uno a la cant de libros del autor anterior } bool existingPublisher = false; foreach (Publisher p in db.Publishers) { if (p.PublisherName == sBook.Publisher) { existingPublisher = true; book.Publisher = p; p.QuantityBooks++; break; } } if (!existingPublisher) { Publisher newPublisher = new Publisher(); //Creo el publisher nuevo newPublisher.PublisherName = sBook.Publisher; //Le cambio el valor del Name newPublisher.QuantityBooks = 1; // Le asigno 1 a la cant de libros del publisher actual db.Publishers.Add(newPublisher); //Lo agrego a la tabla publishers book.Publisher = newPublisher; } }
private void ModifyAuthor(Book book, SimpleBook sBook, LibraryDataBase db) { if (sBook.Author == book.Author.AuthorName) { return; } if (book.Author.AuthorName != "") // Si no es un libro nuevo { book.Author.QuantityBooks--; // Le resto uno a la cant de libros del autor anterior } bool existingAuthor = false; foreach (Author a in db.Authors) { if (a.AuthorName == sBook.Author) { existingAuthor = true; book.Author = a; a.QuantityBooks++; break; } } if (!existingAuthor) { Author newAuthor = new Author(); //Creo el autor nuevo newAuthor.AuthorName = sBook.Author; //Le cambio el Name newAuthor.QuantityBooks = 1; //Le asigno la cant de libros del autor actual db.Authors.Add(newAuthor); //Lo agrego a la tabla de Authors book.Author = newAuthor; } }
public ActionResult Search() { LibraryDataBase db = new LibraryDataBase(); SimpleBook sBook = NewEmptySimpleBook(db); return(View(sBook)); }
public async Task <IActionResult> AddBook([FromBody] SimpleBook vm) { if (ModelState.IsValid) { var book = new Book() { Id = vm.Id, Title = vm.Title, Price = vm.Price, Description = vm.Description, CoverPage = vm.CoverPage, Tags = vm.Tags, Author = authorManager.GetAuthorById(vm.Author) }; bookManager.AddBook(book); vm.Id = book.Id; await bookHub.Clients.All.SendAsync("BookAdded", vm); return(Created($"/api/books/{book.Id}", vm)); } else { return(BadRequest(ModelState)); } }
public ActionResult AddNew() { LibraryDataBase db = new LibraryDataBase(); SimpleBook sBook = NewEmptySimpleBook(db); ViewBag.Description = "Agregar Nuevo"; return(View("Edit", sBook)); }
private SimpleBook NewEmptySimpleBook(LibraryDataBase db) { SimpleBook sBook = new SimpleBook(); sBook.Title = ""; sBook.Author = ""; sBook.GenreType = db.Genres.Find(db.Genres.Max(gen => gen.ID)).GenreType; sBook.Publisher = ""; sBook.BookRef = null; return(sBook); }
private void ModifyGenre(Book book, SimpleBook sBook, LibraryDataBase db) { foreach (Genre g in db.Genres) { if (g.GenreType == sBook.GenreType) { book.ID_GenreType = g.ID; break; } } }
public ActionResult Search(SimpleBook sBook) { LibraryDataBase db = new LibraryDataBase(); List <Book> bookList = db.Books.ToList(); List <Book> filteredList = FilterByTitle(sBook, bookList); filteredList = FilterByGenre(sBook, filteredList); filteredList = FilterByPublisher(sBook, filteredList); filteredList = FilterByAuthor(sBook, filteredList); return(View("ViewAll", filteredList.OrderBy(book => book.Title))); }
private static void AddObject(ISolrServerHandler server, SimpleBook book, IDataMappingHandler mapper) { var doc = mapper.GetDocument(book); var updateRequest = new UpdateRequest(server.GetUriBuilder()).Add(doc).Commit(true); //if (updateRequest.Content != null) //{ // using (var requestStream = File.OpenWrite("update.json")) // { // server.SerializerFactory.DefaultSerializer.Serialize(updateRequest.Content, requestStream); // } //} server.Request <UpdateResponse>(updateRequest); }
public ActionResult Edit(SimpleBook sBook) { LibraryDataBase db = new LibraryDataBase(); Book book = db.Books.Find(sBook.BookRef); ModifyAuthor(book, sBook, db); ModifyGenre(book, sBook, db); ModifyPublisher(book, sBook, db); ModifyTitle(book, sBook); db.Entry(book).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); FreeUnusedMemory(db); return(RedirectToAction("ViewAll")); }
public ActionResult Edit(int id) { LibraryDataBase db = new LibraryDataBase(); Book book = db.Books.Find(id); SimpleBook sBook = new SimpleBook { Title = book.Title, Author = book.Author.AuthorName, GenreType = book.Genre.GenreType, Publisher = book.Publisher.PublisherName, BookRef = book.ID }; ViewBag.Description = "Editar"; return(View(sBook)); }
static void Main(string[] args) { FantasyBook LordOfTheRings = new FantasyBook(); HorrorBook Frankenstein = new HorrorBook(); SimpleBook abook = new SimpleBook(); var books = new Dictionary <string, IBook> { { "LOTR", LordOfTheRings }, { "Frankenstein", Frankenstein }, { "Simple", abook }, }; books["LOTR"].Name = "Lord Of The Rings"; if (books["LOTR"] is IBookWithGenre withGenre) { withGenre.Genre = "Fantasy"; } Console.ReadLine(); }
private List <Book> FilterByPublisher(SimpleBook sBook, List <Book> list) { if (list.Count() == 0 || sBook.Publisher == null) { return(list); } List <Book> filteredList = new List <Book>(); if (sBook.Publisher != null) { foreach (Book b in list) { if (b.Publisher.PublisherName == sBook.Publisher) { filteredList.Add(b); } } } return(filteredList); }
private List <Book> FilterByGenre(SimpleBook sBook, List <Book> list) { if (list.Count() == 0 || sBook.GenreType == null) { return(list); } List <Book> filteredList = new List <Book>(); if (sBook.GenreType != null) { foreach (Book b in list) { if (b.Genre.GenreType == sBook.GenreType) { filteredList.Add(b); } } } return(filteredList); }
public ActionResult AddNew(SimpleBook sBook) { LibraryDataBase db = new LibraryDataBase(); Book book = new Book(); book.Author = new Author { AuthorName = "" }; book.Publisher = new Publisher { PublisherName = "" }; ModifyAuthor(book, sBook, db); ModifyGenre(book, sBook, db); ModifyPublisher(book, sBook, db); ModifyTitle(book, sBook); db.Books.Add(book); db.SaveChanges(); FreeUnusedMemory(db); return(RedirectToAction("ViewAll")); }
private void ModifyTitle(Book book, SimpleBook sBook) { book.Title = sBook.Title; }
private static void Main(string[] args) { try { var book = new SimpleBook() { Iban = "IBAN-MOO-1337", Title = "tHe sTorey of 1337", Description = "it's elite leet 31337 !!!111111 ¶☻°∟┴H}♣○", Author = "some guy", InPrint = false, Pages = 666, Price = new decimal(13.37), ReleaseDate = DateTime.Now, Tags = new List <string> { "1337", "31337", "leet", "elite" } }; //var mapper = new ReflectionDataMapper<SimpleBook>(); //for (int i = 0; i < 1000000; i++) //{ // var doc = mapper.GetDocument(book); // mapper.GetObject(doc); //} //return; Servers.Add(new HttpSolrServer(SERVERURL)); foreach (var server in Servers) { Console.WriteLine("Checking Server " + server.GetUriBuilder().ServerAddress); Ping(server); SystemInfo(server); Console.WriteLine(); Query(server); Console.WriteLine(); var docId = DateTime.Now.ToString("yyyyMMdd-HH:mm"); CreateDoc(server, docId); Console.WriteLine(); Get(server, docId); Get(server, "INVALID-########"); Console.WriteLine(); if (server.DataMapping != null) { var mapper = server.DataMapping.GetMappingHandler(typeof(SimpleBook)); AddObject(server, book, mapper); var solrBook = GetObject(server, book.Iban, mapper); } } Console.WriteLine("Done"); } catch (Exception e) { Console.WriteLine("EXCEPTION!!!!!!"); var inner = e; while (inner != null) { Console.WriteLine(inner.Message); Console.WriteLine(inner.StackTrace); inner = inner.InnerException; } } Console.ReadKey(); }