示例#1
0
        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;
            }
        }
示例#2
0
        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;
            }
        }
示例#3
0
        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));
            }
        }
示例#5
0
        public ActionResult AddNew()
        {
            LibraryDataBase db = new LibraryDataBase();

            SimpleBook sBook = NewEmptySimpleBook(db);

            ViewBag.Description = "Agregar Nuevo";
            return(View("Edit", sBook));
        }
示例#6
0
        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);
        }
示例#7
0
 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;
         }
     }
 }
示例#8
0
        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)));
        }
示例#9
0
文件: Program.cs 项目: hiiru/Mizore
        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);
        }
示例#10
0
        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"));
        }
示例#11
0
        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();
    }
示例#13
0
        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);
        }
示例#14
0
        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);
        }
示例#15
0
        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"));
        }
示例#16
0
 private void ModifyTitle(Book book, SimpleBook sBook)
 {
     book.Title = sBook.Title;
 }
示例#17
0
文件: Program.cs 项目: hiiru/Mizore
        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();
        }