Ejemplo n.º 1
0
        public JsonResult Create(NewBookViewModel model)
        {
            if (ModelState.IsValid)
            {
                Author author;
                try
                {
                    author = dbContext.authors.Single(a => a.id == model.authorId);
                    if (author == null)
                    {
                        ModelState.AddModelError("Author", "ID de Autor Inválido!");
                    }
                    else
                    {
                        Book book = new Book {
                            author = author, name = model.name
                        };
                        dbContext.books.Add(book);

                        BookCopyCategory bcce = dbContext.bookCopyCategories.Single(z => z.id == GlobalValues.BookCopyCategory.EXTERNAL);
                        BookCopyCategory bcci = dbContext.bookCopyCategories.Single(z => z.id == GlobalValues.BookCopyCategory.INTERNAL);
                        BookCopyStatus   bcs  = dbContext.bookCopyStatuses.Single(z => z.id == GlobalValues.BookCopyStatus.AVAILABLE);

                        BookCopy bci = new BookCopy {
                            book = book, category = bcci, status = bcs, enterDate = DateTime.Now
                        };
                        BookCopy bce = new BookCopy {
                            book = book, category = bcce, status = bcs, enterDate = DateTime.Now
                        };

                        dbContext.bookCopies.Add(bci);
                        dbContext.bookCopies.Add(bce);

                        dbContext.SaveChanges();

                        return(Json(new { status = "OK", info = "Operación exitosa!" }));
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("Author", ex.Message);
                }
            }

            List <string> messages = new List <string>();

            foreach (var ms in ModelState.Values)
            {
                foreach (var me in ms.Errors)
                {
                    messages.Add(me.ErrorMessage);
                }
            }
            return(Json(new { status = "ERROR", info = messages }));
        }
Ejemplo n.º 2
0
        public JsonResult Lending(int id)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    BookCopy bc = dbContext.bookCopies.Single(b => b.id == id);
                    if (bc == null)
                    {
                        ModelState.AddModelError("Invalid ID", "Es probable que la ID del Ejemplar proporcianada sea inválida!");
                    }
                    else if (bc.status.id == GlobalValues.BookCopyStatus.REQUESTED)
                    {
                        ModelState.AddModelError("REQUESTED", "El libro ya ha sido solicitado!");
                    }
                    else if (bc.status.id == GlobalValues.BookCopyStatus.LENT ||
                             bc.status.id == GlobalValues.BookCopyStatus.FIXING)
                    {
                        ModelState.AddModelError("REQUESTED", "El libro no se encuentra disponible!");
                    }
                    else
                    {
                        BookCopyStatus bcs = dbContext.bookCopyStatuses.Single(z => z.id == GlobalValues.BookCopyStatus.REQUESTED);
                        bc.status = bcs;
                        ApplicationUser u       = dbContext.Users.Single(z => z.UserName.Equals(User.Identity.Name));
                        Lending         lending = new Lending {
                            bookCopy = bc, user = u, startDate = DateTime.Now, endDate = (DateTime)SqlDateTime.MinValue, duration = 0
                        };
                        dbContext.lendings.Add(lending);
                        dbContext.SaveChanges();
                        return(Json(new { status = "OK", info = "Operación exitosa!" }));
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Exception", ex.Message + " Es probable que la ID del Ejemplar proporcianada sea inválida!");
            }

            List <string> messages = new List <string>();

            foreach (var ms in ModelState.Values)
            {
                foreach (var me in ms.Errors)
                {
                    messages.Add(me.ErrorMessage);
                }
            }
            return(Json(new { status = "ERROR", info = messages }));
        }
Ejemplo n.º 3
0
        public JsonResult AddCopy(NewBookCopyViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Book             book             = dbContext.books.Single(a => a.id == model.bookId);
                    BookCopyCategory bookCopyCategory = dbContext.bookCopyCategories.Single(a => a.id == model.categoryId);

                    if (book == null || bookCopyCategory == null)
                    {
                        ModelState.AddModelError("IDs Incorrectos", "ID de Autor o de Categoría Inválidos!");
                    }
                    else
                    {
                        BookCopyStatus bcs = dbContext.bookCopyStatuses.Single(z => z.id == GlobalValues.BookCopyStatus.AVAILABLE);

                        BookCopy bc = new BookCopy {
                            book = book, category = bookCopyCategory, status = bcs, enterDate = DateTime.Now
                        };

                        dbContext.bookCopies.Add(bc);
                        dbContext.SaveChanges();

                        return(Json(new { status = "OK", info = "Operación exitosa!" }));
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("Author", ex.Message);
                }
            }

            List <string> messages = new List <string>();

            foreach (var ms in ModelState.Values)
            {
                foreach (var me in ms.Errors)
                {
                    messages.Add(me.ErrorMessage);
                }
            }
            return(Json(new { status = "ERROR", info = messages }));
        }
Ejemplo n.º 4
0
        public JsonResult ChangeCopyStatus(BookCopyStatusViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    BookCopy       bookCopy       = dbContext.bookCopies.Single(a => a.id == model.bookCopyId);
                    BookCopyStatus bookCopyStatus = dbContext.bookCopyStatuses.Single(a => a.id == model.statusId);

                    if (bookCopy == null || bookCopyStatus == null)
                    {
                        ModelState.AddModelError("IDs Incorrectos", "ID de ejemplar o de estado Inválidos!");
                    }
                    else if (bookCopyStatus.id == GlobalValues.BookCopyStatus.REQUESTED)
                    {
                        ModelState.AddModelError("Acción no válida", "No Autorizado para prestar libros!");
                    }
                    else if (bookCopyStatus.id == GlobalValues.BookCopyStatus.LENT)
                    {
                        if (bookCopy.status.id == GlobalValues.BookCopyStatus.REQUESTED)
                        {
                            bookCopy.status = bookCopyStatus;
                            dbContext.SaveChanges();
                            return(Json(new { status = "OK", info = "Operación exitosa!", bookCopyStatus = bookCopy.status.name }));
                        }
                        else
                        {
                            ModelState.AddModelError("Acción no válida", "El libro no se ha solicitado para préstamo!");
                        }
                    }
                    else
                    {
                        if (bookCopy.status.id == GlobalValues.BookCopyStatus.LENT)
                        {
                            Lending lending = dbContext.lendings.Single(z => z.duration == 0 && z.bookCopy.id == bookCopy.id);
                            lending.endDate  = DateTime.Now;
                            lending.duration = (long)lending.endDate.Subtract(lending.startDate).TotalHours;
                            bookCopy.status  = bookCopyStatus;
                            dbContext.SaveChanges();
                            return(Json(new { status = "OK", info = "Operación exitosa!",
                                              bookCopyStatus = bookCopy.status.name }));
                        }
                        else if (bookCopy.status.id == GlobalValues.BookCopyStatus.REQUESTED)
                        {
                            Lending lending = dbContext.lendings.Single(z => z.duration == 0 && z.bookCopy.id == bookCopy.id);
                            lending.endDate  = lending.startDate;
                            lending.duration = -1;

                            bookCopy.status = bookCopyStatus;
                            dbContext.SaveChanges();
                            return(Json(new { status = "OK", info = "Operación exitosa!",
                                              bookCopyStatus = bookCopy.status.name }));
                        }
                        else
                        {
                            bookCopy.status = bookCopyStatus;
                            dbContext.SaveChanges();
                            return(Json(new { status = "OK", info = "Operación exitosa!",
                                              bookCopyStatus = bookCopy.status.name }));
                        }
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("Author", ex.Message);
                }
            }

            List <string> messages = new List <string>();

            foreach (var ms in ModelState.Values)
            {
                foreach (var me in ms.Errors)
                {
                    messages.Add(me.ErrorMessage);
                }
            }
            return(Json(new { status = "ERROR", info = messages }));
        }