Ejemplo n.º 1
0
        public Book ReturnBook(int bookID)
        {
            using (var db = new favlEntities())
            {
                var book = db.Books.Find(bookID);

                if (book == null)
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }

                book.CheckedOutTo   = null;
                book.CheckedOutDate = null;

                db.SaveChanges();

                return(new Book
                {
                    Id = book.Id,
                    Title = book.Title,
                    AuthorFirst = book.AuthorFirst,
                    AuthorMiddle = book.AuthorMiddle,
                    AuthorLast = book.AuthorLast,
                    Barcode = book.Barcode
                });
            }
        }
Ejemplo n.º 2
0
        public List <OverDueBook> GetOverDueBooks(int libraryID)
        {
            var overDueIfCheckedOutBefore = DateTime.UtcNow.AddDays(-7);

            using (var db = new favlEntities())
            {
                var list = db.Books.Where(b => b.LibraryID == libraryID && b.CheckedOutDate != null && b.CheckedOutTo != null).OrderBy(b => b.CheckedOutDate).ToList().Select(book => new OverDueBook
                {
                    Id             = book.Id,
                    Title          = book.Title,
                    AuthorFirst    = book.AuthorFirst,
                    AuthorMiddle   = book.AuthorMiddle,
                    AuthorLast     = book.AuthorLast,
                    Barcode        = book.Barcode,
                    ReaderFirst    = book.Reader.FirstName,
                    ReaderMiddle   = book.Reader.MiddleName,
                    ReaderLast     = book.Reader.LastName,
                    CheckedOutDate = book.CheckedOutDate,
                    // ReSharper disable once PossibleInvalidOperationException
                    DaysOverDue = (overDueIfCheckedOutBefore - book.CheckedOutDate.Value).TotalDays
                }).ToList();

                foreach (var item in list)
                {
                    if (item.CheckedOutDate.HasValue)
                    {
                        item.DueDate = item.CheckedOutDate.Value.AddDays(7);
                    }
                }

                return(list);
            }
        }
Ejemplo n.º 3
0
        public string CheckOutBook(int bookID, int readerID)
        {
            using (var db = new favlEntities())
            {
                var book = db.Books.Find(bookID);
                if (book == null)
                {
                    return("Book not found");
                }

                var reader = db.Readers.Find(readerID);
                if (reader == null)
                {
                    return("Reader not found");
                }

                book.CheckedOutTo      = readerID;
                book.CheckedOutDate    = DateTime.UtcNow;
                book.TotalCheckouts   += 1;
                reader.TotalCheckouts += 1;

                db.CheckOuts.Add(new CheckOut()
                {
                    BookID       = bookID,
                    ReaderID     = readerID,
                    LibraryID    = book.LibraryID,
                    CheckOutDate = DateTime.UtcNow
                });

                db.SaveChanges();

                return("ok");
            }
        }
Ejemplo n.º 4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                return;
            }

            using (var db = new favlEntities())
            {
                var barcode = Request.Form["Barcode"].Trim();
                db.Books.Add(new Book
                {
                    Title        = Request.Form["Title"].Trim(),
                    AuthorFirst  = Request.Form["AuthorFirst"].Trim(),
                    AuthorMiddle = Request.Form["AuthorMiddle"].Trim(),
                    AuthorLast   = Request.Form["AuthorLast"].Trim(),
                    Barcode      = string.IsNullOrEmpty(barcode) ? null : barcode + " (EAN_13)",
                    LibraryID    = int.Parse(Request.Form["LibraryID"])
                });

                db.SaveChanges();
            }

            Response.Redirect("books.aspx");
        }
Ejemplo n.º 5
0
        public Library SignIn([FromBody] SignInArgs args)
        {
            using (var db = new favlEntities())
            {
                var librarian = db.Librarians.FirstOrDefault(l => l.Username == args.username);

                if (librarian == null)
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }

                if (!PW.Verify(args.password, librarian.PasswordHash, librarian.PasswordSalt))
                {
                    throw new HttpResponseException(HttpStatusCode.Unauthorized);
                }

                return(new Library
                {
                    Id = librarian.Library.Id,
                    Name = librarian.Library.Name,
                    Village = librarian.Library.Village,
                    Country = librarian.Library.Country
                });
            }
        }
Ejemplo n.º 6
0
        public Reader AddReader([FromBody] Reader reader)
        {
            using (var db = new favlEntities())
            {
                if (string.IsNullOrEmpty(reader.Barcode))
                {
                    reader.Barcode = null;
                }
                else
                {
                    // throw error if another reader has same barcode
                    if (db.Readers.FirstOrDefault(r => r.Barcode == reader.Barcode) != null)
                    {
                        throw new HttpResponseException(HttpStatusCode.Conflict);
                    }
                }

                var addedReader = db.Readers.Add(reader);

                db.SaveChanges();

                return(new Reader
                {
                    Id = addedReader.Id,
                    FirstName = addedReader.FirstName,
                    MiddleName = addedReader.MiddleName,
                    LastName = addedReader.LastName,
                    Barcode = addedReader.Barcode,
                    TotalCheckouts = addedReader.TotalCheckouts
                });
            }
        }
Ejemplo n.º 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(Request.QueryString["id"]))
            {
                Response.Redirect("books.aspx");
                return;
            }

            var bookId = int.Parse(Request.QueryString["id"]);

            using (var db = new favlEntities())
            {
                var book = db.Books.Find(bookId);

                if (book != null)
                {
                    if (IsPostBack)
                    {
                        var barcode = Request.Form["Barcode"].Trim();

                        book.Title        = Request.Form["Title"].Trim();
                        book.AuthorFirst  = Request.Form["AuthorFirst"].Trim();
                        book.AuthorMiddle = Request.Form["AuthorMiddle"].Trim();
                        book.AuthorLast   = Request.Form["AuthorLast"].Trim();
                        book.Barcode      = string.IsNullOrEmpty(barcode) ? null : barcode + " (EAN_13)";
                        book.LibraryID    = int.Parse(Request.Form["LibraryID"]);

                        db.SaveChanges();
                        Response.Redirect("books.aspx");
                        return;
                    }

                    var originalBarcode = book.Barcode;

                    if (!string.IsNullOrEmpty(originalBarcode) && originalBarcode.Length > 13)
                    {
                        originalBarcode = originalBarcode.Substring(0, 13);
                    }

                    var s = new HtmlGenericControl("script")
                    {
                        InnerHtml = "var book = " + JsonConvert.SerializeObject(
                            new Book
                        {
                            Id           = book.Id,
                            Title        = book.Title,
                            AuthorFirst  = book.AuthorFirst,
                            AuthorMiddle = book.AuthorMiddle,
                            AuthorLast   = book.AuthorLast,
                            Barcode      = originalBarcode ?? string.Empty,
                            LibraryID    = book.LibraryID
                        })
                    };

                    insertBook.Controls.Add(s);
                }
            }
            ;
        }
Ejemplo n.º 8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(Request.QueryString["id"]))
            {
                Response.Redirect("librarians.aspx");
                return;
            }

            var librarianId = int.Parse(Request.QueryString["id"]);

            using (var db = new favlEntities())
            {
                var librarian = db.Librarians.Find(librarianId);

                if (librarian != null)
                {
                    if (IsPostBack)
                    {
                        var barcode = Request.Form["Barcode"].Trim();
                        librarian.FirstName = Request.Form["FirstName"].Trim();
                        librarian.LastName  = Request.Form["LastName"].Trim();
                        librarian.Username  = Request.Form["Username"].Trim();

                        librarian.Barcode   = string.IsNullOrEmpty(barcode) ? null : barcode + " (CODE_128)";
                        librarian.LibraryID = int.Parse(Request.Form["LibraryID"]);

                        db.SaveChanges();
                        Response.Redirect("librarians.aspx");
                        return;
                    }

                    var originalBarcode = librarian.Barcode;

                    if (!string.IsNullOrEmpty(originalBarcode) && originalBarcode.Length > 7)
                    {
                        originalBarcode = originalBarcode.Substring(0, 7);
                    }

                    var s = new HtmlGenericControl("script")
                    {
                        InnerHtml = "var librarian = " + JsonConvert.SerializeObject(
                            new Librarian
                        {
                            Id        = librarian.Id,
                            FirstName = librarian.FirstName,
                            LastName  = librarian.LastName,
                            Username  = librarian.Username,
                            Barcode   = originalBarcode ?? string.Empty,
                            LibraryID = librarian.LibraryID
                        })
                    };

                    insertLibrarian.Controls.Add(s);
                }
            }
            ;
        }
Ejemplo n.º 9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var overDueIfCheckedOutBefore = DateTime.UtcNow.AddDays(-7);

            using (var db = new favlEntities())
            {
                var libraries = db.Libraries.OrderBy(l => l.Id).ToList();

                foreach (var library in libraries)
                {
                    var tile = new HtmlGenericControl("div");
                    tile.Attributes.Add("class", "libraryTile");
                    tile.Controls.Add(new HtmlGenericControl("h2")
                    {
                        InnerText = library.Name
                    });
                    tile.Style[HtmlTextWriterStyle.BackgroundColor] = admin.checkOuts.colorArray[(library.Id - 1) % admin.checkOuts.colorArray.Length];


                    var    books        = library.Books.Count;
                    var    readers      = library.Readers.Count;
                    var    librarians   = string.Join(", ", library.Librarians.Select(l => l.FirstName + " " + l.LastName));
                    var    checkOuts    = db.CheckOuts.Count(c => c.LibraryID == library.Id);
                    double overDueBooks =
                        db.CheckOuts.Count(c => c.LibraryID == library.Id &&
                                           c.CheckOutDate < overDueIfCheckedOutBefore);
                    overDueBooks = checkOuts != 0 ? overDueBooks / checkOuts : 0;

                    tile.Controls.Add(new HtmlGenericControl("h3")
                    {
                        InnerHtml = $"<i class='fa fa-book fa-fw'></i> Books: {books}"
                    });
                    tile.Controls.Add(new HtmlGenericControl("h3")
                    {
                        InnerHtml = $"<i class='fa fa-user fa-fw'></i> Readers: {readers}"
                    });
                    tile.Controls.Add(new HtmlGenericControl("h3")
                    {
                        InnerHtml = $"<i class='fa fa-shopping-bag fa-fw'></i> Checkouts: {checkOuts}"
                    });
                    tile.Controls.Add(new HtmlGenericControl("h3")
                    {
                        InnerHtml = $"<i class='fa fa-hourglass-end fa-fw'></i> Overdue: {overDueBooks:0%}"
                    });
                    tile.Controls.Add(new HtmlGenericControl("p")
                    {
                        InnerHtml = $"Librarians: {librarians}"
                    });

                    insertData.Controls.Add(tile);
                }
            }
        }
Ejemplo n.º 10
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(Request.QueryString["id"]) || !((Master as Admin)?.IsGod ?? false))
            {
                Response.Redirect("libraries.aspx");
                return;
            }

            var libraryId = int.Parse(Request.QueryString["id"]);

            using (var db = new favlEntities())
            {
                var library = db.Libraries.Find(libraryId);

                if (library == null)
                {
                    Response.Redirect("libraries.aspx");
                    return;
                }

                foreach (var reader in db.Readers.Where(r => r.LibraryID == library.Id).ToList())
                {
                    db.Readers.Remove(reader);
                }

                foreach (var book in db.Books.Where(b => b.LibraryID == library.Id).ToList())
                {
                    db.Books.Remove(book);
                }

                foreach (var librarian in db.Librarians.Where(l => l.LibraryID == library.Id).ToList())
                {
                    db.Librarians.Remove(librarian);
                }

                foreach (var checkOut in db.CheckOuts.Where(l => l.LibraryID == library.Id).ToList())
                {
                    db.CheckOuts.Remove(checkOut);
                }

                foreach (var checkOut in db.CheckOutsByDays.Where(l => l.LibraryID == library.Id).ToList())
                {
                    db.CheckOutsByDays.Remove(checkOut);
                }

                db.Libraries.Remove(library);
                db.SaveChanges();
            }

            Response.Redirect("libraries.aspx");
        }
Ejemplo n.º 11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            using (var db = new favlEntities())
            {
                var list       = db.Books.Where(b => allOrOneLibrary.LibraryID == 0 || b.LibraryID == allOrOneLibrary.LibraryID).OrderBy(b => b.Title).ToList();
                var listHeader = new HtmlGenericControl("li");
                listHeader.InnerHtml = "<span class='title'>Title</span><span class='author'>Author</span><span class='library'>Library</span><span class='barcode'>Barcode (EAN_13)</span><span class='reader'>Checked Out To</span><span></span><span></span>";
                listHeader.Attributes.Add("class", "listAsTableHeader");

                insertList.Controls.Add(listHeader);

                foreach (var book in list)
                {
                    var li   = new HtmlGenericControl("li");
                    var span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "title");
                    span.InnerText = book.Title;
                    li.Controls.Add(span);

                    span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "author");
                    span.InnerText = book.AuthorFirst + " " + book.AuthorMiddle + " " + book.AuthorLast;
                    li.Controls.Add(span);

                    span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "library");
                    span.InnerText = book.Library != null ? book.Library.Name : "—";
                    li.Controls.Add(span);

                    span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "barcode");
                    span.InnerText = rxBarcodeSuffix.Replace(book.Barcode ?? "—", string.Empty);
                    li.Controls.Add(span);

                    span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "reader");
                    span.InnerText = book.Reader != null ? book.Reader.FirstName + " " + book.Reader.LastName : "—";
                    li.Controls.Add(span);

                    li.Controls.Add(
                        new LiteralControl(
                            $"<span class='edit'><a href='editBook.aspx?id={book.Id}'>Edit</a></span><span class='delete'><a href='javascript:deleteBook({book.Id}, \"{book.Title}\")'>Delete</a></span>")
                        );


                    insertList.Controls.Add(li);
                }
            }
        }
Ejemplo n.º 12
0
        public void DeleteReader(int userID)
        {
            using (var db = new favlEntities())
            {
                var reader = db.Readers.Find(userID);

                if (reader == null)
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }

                db.Readers.Remove(reader);
                db.SaveChanges();
            }
        }
Ejemplo n.º 13
0
        public IEnumerable <Library> GetLibraries()
        {
            using (var db = new favlEntities())
            {
                var libraries = db.Libraries.ToList();

                return(libraries.Select(library => new Library
                {
                    Id = library.Id,
                    Name = library.Name,
                    Village = library.Village,
                    Country = library.Country
                })
                       .ToList());
            }
        }
Ejemplo n.º 14
0
        protected void Page_Load(object sender, EventArgs e)
        {
            using (var db = new favlEntities())
            {
                var list = db.Readers.Where(b => allOrOneLibrary.LibraryID == 0 || b.LibraryID == allOrOneLibrary.LibraryID).OrderBy(r => r.LastName).ThenBy(r => r.FirstName).ToList();

                var listHeader = new HtmlGenericControl("li");
                listHeader.InnerHtml = "<span class='reader'>Name</span><span class='barcode'>Barcode (CODE_128)</span><span class='library'>Community</span><span class='checkouts'>Checkouts</span><span></span><span></span>";
                listHeader.Attributes.Add("class", "listAsTableHeader");

                insertList.Controls.Add(listHeader);

                foreach (var reader in list)
                {
                    var li = new HtmlGenericControl("li");

                    var span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "reader");
                    var readerName = $"{reader.LastName}, {reader.FirstName} {reader.MiddleName}";
                    span.InnerText = readerName;
                    li.Controls.Add(span);

                    span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "barcode");
                    span.InnerText = rxBarcodeSuffix.Replace(reader.Barcode ?? "—", string.Empty);
                    li.Controls.Add(span);

                    span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "library");
                    span.InnerText = reader.Library?.Name ?? string.Empty;
                    li.Controls.Add(span);

                    span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "checkouts");
                    span.InnerText = reader.TotalCheckouts.ToString("#,###;;0");
                    li.Controls.Add(span);

                    li.Controls.Add(
                        new LiteralControl(
                            $"<span class='edit'><a href='editReader.aspx?id={reader.Id}'>Edit</a></span><span class='delete'><a href='javascript:deleteReader({reader.Id}, \"{readerName}\")'>Delete</a></span>")
                        );


                    insertList.Controls.Add(li);
                }
            }
        }
Ejemplo n.º 15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var sb = new StringBuilder();

            int.TryParse(Request.QueryString["libraryID"], out int libraryId);

            using (var db = new favlEntities())
            {
                var books = db.Books.Where(b => libraryId == 0 || b.LibraryID == libraryId)
                            .OrderBy(b => b.Id)
                            .Take(ROWS * COLUMNS)
                            .ToList();

                var corrected = 0;

                for (var i = 0; i < books.Count; ++i)
                {
                    corrected += CorrectBarCode(books[i]);

                    var x   = i % COLUMNS == 0 ? LEFT_MARGIN : LEFT_MARGIN + CARD_WIDTH + GUTTER;
                    var row = i / COLUMNS;
                    var y   = TOP_MARGIN + row * CARD_HEIGHT;

                    var BookTitle  = HttpUtility.HtmlEncode(rxBarcodeSuffix.Replace(books[i].Title, string.Empty));
                    var BookAuthor = HttpUtility.HtmlEncode(
                        $"{books[i].AuthorFirst} {books[i].AuthorMiddle} {books[i].AuthorLast}".Trim());
                    var LibraryName = HttpUtility.HtmlEncode(books[i].Library.Name);
                    var BookBarcode = HttpUtility.HtmlEncode(rxBarcodeSuffix.Replace(books[i].Barcode, string.Empty));

                    sb.AppendLine($@"<div class='card' style='top: {y:0.00}in; left: {x:0.00}in;'><table><tr><td>
                        <h1>{BookTitle}</h1>
                        <h2>{BookAuthor}</h2>
                        <h3>{LibraryName}</h3>
                    </td></tr></table><div class='barcode'><svg data-barcode='{
                            BookBarcode
                        }' xmlns='http://www.w3.org/2000/svg' version='1.1'></svg></div></div>");
                }

                if (corrected > 0)
                {
                    db.SaveChanges();
                }
            }

            insertCards.InnerHtml = sb.ToString();
        }
Ejemplo n.º 16
0
 public List <Reader> GetReaders()
 {
     using (var db = new favlEntities())
     {
         var readers = db.Readers.ToList();
         return(readers.Select(reader => new Reader
         {
             Id = reader.Id,
             FirstName = reader.FirstName,
             MiddleName = reader.MiddleName,
             LastName = reader.LastName,
             Barcode = reader.Barcode,
             TotalCheckouts = reader.TotalCheckouts
         })
                .ToList());
     }
 }
Ejemplo n.º 17
0
 public IEnumerable <Reader> GetReaders(int libraryID)
 {
     using (var db = new favlEntities())
     {
         var readers = db.Readers.Where(r => r.LibraryID == libraryID).ToList();
         return(readers.Select(reader => new Reader
         {
             Id = reader.Id,
             FirstName = reader.FirstName,
             MiddleName = reader.MiddleName,
             LastName = reader.LastName,
             Barcode = reader.Barcode,
             TotalCheckouts = reader.TotalCheckouts
         })
                .ToList());
     }
 }
Ejemplo n.º 18
0
        protected void Page_Load(object sender, EventArgs e)
        {
            using (var db = new favlEntities())
            {
                var list = db.Librarians.Where(l => l.LibraryID != null).ToList();

                var listHeader = new HtmlGenericControl("li");
                listHeader.InnerHtml = "<span class='name'>Name</span><span class='village'>Community</span><span class='country'>Country</span><span class='barcode'>Barcode (CODE_128)</span><span></span><span></span>";
                listHeader.Attributes.Add("class", "listAsTableHeader");

                insertList.Controls.Add(listHeader);

                foreach (var librarian in list)
                {
                    var li   = new HtmlGenericControl("li");
                    var span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "name");
                    span.InnerText = librarian.LastName + ", " + librarian.FirstName;
                    li.Controls.Add(span);

                    span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "village");
                    span.InnerText = librarian.Library.Village;
                    li.Controls.Add(span);

                    span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "country");
                    span.InnerText = librarian.Library.Country;
                    li.Controls.Add(span);

                    span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "barcode");
                    span.InnerText = rxBarcodeSuffix.Replace(librarian.Barcode ?? "—", string.Empty);
                    li.Controls.Add(span);


                    li.Controls.Add(
                        new LiteralControl(
                            $"<span class='edit'><a href='editLibrarian.aspx?id={librarian.Id}'>Edit</a></span><span class='delete'><a href='javascript:deleteLibrarian({librarian.Id}, \"{librarian.Library.Name}\")'>Delete</a></span>")
                        );

                    insertList.Controls.Add(li);
                }
            }
        }
Ejemplo n.º 19
0
        protected void Page_Load(object sender, EventArgs e)
        {
            using (var db = new favlEntities())
            {
                var lastDay = db.CheckOutsByDays.Any()
                    ? db.CheckOutsByDays.Max(d => d.Day)
                    : DateTime.UtcNow.Date.AddDays(-30);

                for (var day = lastDay.AddDays(1); day <= DateTime.UtcNow.Date; day = day.AddDays(1))
                {
                    db.UpdateCheckOutsByDay(day);
                    update.Controls.Add(new HtmlGenericControl("p")
                    {
                        InnerText = $"Updated CheckOutsByDay for day ending {day:F}"
                    });
                }
            }
        }
Ejemplo n.º 20
0
        public IEnumerable <Book> GetLibraryBooks(int libraryID)
        {
            using (var db = new favlEntities())
            {
                var books = db.Books.Where(b => b.LibraryID == libraryID).ToList();

                return(books.Select(book => new Book
                {
                    Id = book.Id,
                    Title = book.Title,
                    AuthorFirst = book.AuthorFirst,
                    AuthorMiddle = book.AuthorMiddle,
                    AuthorLast = book.AuthorLast,
                    Barcode = book.Barcode
                })
                       .ToList());
            }
        }
Ejemplo n.º 21
0
        protected void Page_Load(object sender, EventArgs e)
        {
            using (var db = new favlEntities())
            {
                librarySelectOptions.Controls.Add(new HtmlGenericControl("option")
                {
                    InnerText = "Choose Library"
                });

                foreach (var library in db.Libraries)
                {
                    var option = new HtmlGenericControl("option");
                    option.Attributes.Add("value", library.Id.ToString());
                    option.InnerText = library.Name;
                    librarySelectOptions.Controls.Add(option);
                }
            }
        }
Ejemplo n.º 22
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(Request.QueryString["id"]))
            {
                Response.Redirect("libraries.aspx");
                return;
            }

            var libraryId = int.Parse(Request.QueryString["id"]);

            using (var db = new favlEntities())
            {
                var library = db.Libraries.Find(libraryId);

                if (library != null)
                {
                    if (IsPostBack)
                    {
                        library.Name    = Request.Form["Name"].Trim();
                        library.Village = Request.Form["Village"].Trim();
                        library.Country = Request.Form["Country"].Trim();

                        db.SaveChanges();
                        Response.Redirect("libraries.aspx");
                        return;
                    }

                    var s = new HtmlGenericControl("script")
                    {
                        InnerHtml = "var library = " + JsonConvert.SerializeObject(
                            new Library
                        {
                            Id      = library.Id,
                            Name    = library.Name,
                            Village = library.Village,
                            Country = library.Country
                        })
                    };

                    insertLibrary.Controls.Add(s);
                }
            }
            ;
        }
Ejemplo n.º 23
0
        public Library SignIn(string barcode)
        {
            using (var db = new favlEntities())
            {
                var librarian = db.Librarians.FirstOrDefault(l => l.Barcode == barcode);

                if (librarian == null)
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }

                return(new Library
                {
                    Id = librarian.Library.Id,
                    Name = librarian.Library.Name,
                    Village = librarian.Library.Village,
                    Country = librarian.Library.Country
                });
            }
        }
Ejemplo n.º 24
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                return;
            }

            if (Request.Form["Password"] != Request.Form["Password2"])
            {
                passwordError.Visible = true;
                return;
            }

            passwordError.Visible = false;

            using (var db = new favlEntities())
            {
                string hash, salt;
                PW.Encrypt(Request.Form["Password"], out hash, out salt);
                var barcode = Request.Form["Barcode"].Trim();

                var librarian = new Librarian
                {
                    FirstName    = Request.Form["FirstName"].Trim(),
                    LastName     = Request.Form["LastName"].Trim(),
                    Username     = Request.Form["Username"].Trim(),
                    IsAdmin      = false,
                    PasswordHash = hash,
                    PasswordSalt = salt,


                    Barcode   = string.IsNullOrEmpty(barcode) ? null : barcode + " (CODE_128)",
                    LibraryID = int.Parse(Request.Form["LibraryID"])
                };

                db.Librarians.Add(librarian);
                db.SaveChanges();
            }

            Response.Redirect("librarians.aspx");
        }
Ejemplo n.º 25
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                return;
            }

            using (var db = new favlEntities())
            {
                db.Libraries.Add(new Library
                {
                    Name    = Request.Form["Name"],
                    Village = Request.Form["Village"],
                    Country = Request.Form["Country"]
                });

                db.SaveChanges();
            }

            Response.Redirect("libraries.aspx");
        }
Ejemplo n.º 26
0
        public Reader EditReader(int userID, [FromBody] Reader reader)
        {
            using (var db = new favlEntities())
            {
                var existingReader = db.Readers.Find(userID);

                if (existingReader == null)
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }

                // check if new barcode is different from existing barcode
                if (existingReader.Barcode != reader.Barcode && !string.IsNullOrEmpty(reader.Barcode))
                {
                    // throw error if another reader has same barcode
                    if (db.Readers.FirstOrDefault(r => r.Barcode == reader.Barcode) != null)
                    {
                        throw new HttpResponseException(HttpStatusCode.Conflict);
                    }
                }

                existingReader.FirstName  = reader.FirstName;
                existingReader.MiddleName = reader.MiddleName;
                existingReader.LastName   = reader.LastName;
                existingReader.Barcode    = string.IsNullOrEmpty(reader.Barcode) ? null : reader.Barcode;
                existingReader.LibraryID  = reader.LibraryID;

                db.SaveChanges();

                return(new Reader
                {
                    Id = existingReader.Id,
                    FirstName = existingReader.FirstName,
                    MiddleName = existingReader.MiddleName,
                    LastName = existingReader.LastName,
                    Barcode = existingReader.Barcode,
                    TotalCheckouts = existingReader.TotalCheckouts
                });
            }
        }
Ejemplo n.º 27
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var WeAreGod = (Master as Admin)?.IsGod ?? false;

            using (var db = new favlEntities())
            {
                var list = db.Libraries.ToList();

                var listHeader = new HtmlGenericControl("li");

                listHeader.InnerHtml =
                    "<span class='name'>Community</span><span class='country'>Country</span><span></span>" + (WeAreGod ? "<span></span>" : string.Empty);
                listHeader.Attributes.Add("class", "listAsTableHeader");

                insertList.Controls.Add(listHeader);

                foreach (var library in list)
                {
                    var li   = new HtmlGenericControl("li");
                    var span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "name");
                    span.InnerText = library.Name;
                    li.Controls.Add(span);

                    span = new HtmlGenericControl("span");
                    span.Attributes.Add("class", "country");
                    span.InnerText = library.Country;
                    li.Controls.Add(span);

                    li.Controls.Add(
                        new LiteralControl(
                            $"<span class='edit'><a href='editLibrary.aspx?id={library.Id}'>Edit</a></span>" + (WeAreGod
                                ? $"<span class='delete'><a href='javascript:deleteLibrary({library.Id}, \"{library.Name}\")'>Delete</a></span>"
                                : string.Empty))
                        );

                    insertList.Controls.Add(li);
                }
            }
        }
Ejemplo n.º 28
0
        public Book GetBookByBarcode(string barcode)
        {
            using (var db = new favlEntities())
            {
                var book = db.Books.FirstOrDefault(b => b.Barcode == barcode);

                if (book == null)
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }

                return(new Book
                {
                    Id = book.Id,
                    Title = book.Title,
                    AuthorFirst = book.AuthorFirst,
                    AuthorMiddle = book.AuthorMiddle,
                    AuthorLast = book.AuthorLast,
                    Barcode = book.Barcode
                });
            }
        }
Ejemplo n.º 29
0
        public Reader GetReaderByBarcode(string barcode)
        {
            using (var db = new favlEntities())
            {
                var reader = db.Readers.FirstOrDefault(r => r.Barcode == barcode);

                if (reader == null)
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }

                return(new Reader
                {
                    Id = reader.Id,
                    FirstName = reader.FirstName,
                    MiddleName = reader.MiddleName,
                    LastName = reader.LastName,
                    Barcode = reader.Barcode,
                    TotalCheckouts = reader.TotalCheckouts
                });
            }
        }
Ejemplo n.º 30
0
        protected void Page_Load(object sender, EventArgs e)
        {
            using (var db = new favlEntities())
            {
                var list = db.Books.Where(b => b.TotalCheckouts > 0 && (allOrOneLibrary.LibraryID == 0 || b.LibraryID == allOrOneLibrary.LibraryID)).OrderByDescending(b => b.TotalCheckouts).Take(30)
                           .ToList();

                foreach (var book in list)
                {
                    var tr = new HtmlGenericControl("tr");
                    var td = new HtmlGenericControl("td")
                    {
                        InnerText = book.Title
                    };
                    tr.Controls.Add(td);

                    td = new HtmlGenericControl("td")
                    {
                        InnerText = book.AuthorFirst + " " + book.AuthorMiddle + " " + book.AuthorLast
                    };
                    tr.Controls.Add(td);

                    td = new HtmlGenericControl("td")
                    {
                        InnerText = book.Library != null ? book.Library.Name : "—"
                    };
                    tr.Controls.Add(td);

                    td = new HtmlGenericControl("td")
                    {
                        InnerText = book.TotalCheckouts.ToString()
                    };
                    tr.Controls.Add(td);

                    popularBooksBody.Controls.Add(tr);
                }
            }
        }