Exemplo n.º 1
0
        public string GetDocumentImage(string documentNumber, string size, Document doc, bool isThumbnail)
        {
            if (doc == null)
                return string.Empty;

            if (Equals(doc.DocType, typeof (Film).Name))
            {
                var posterUrl = GetExternalFilmImageUri(doc as Film);
                if (isThumbnail)
                    posterUrl = posterUrl.Replace("640.jpg", string.IsNullOrEmpty(size) ? size + ".jpg" : "60.jpg");

                return GetLocalImageUrl(posterUrl, size != null ? documentNumber + "-" + size : documentNumber, isThumbnail);
            }

            if (Equals(doc.DocType, typeof (Book).Name))
                return GetLocalImageUrl(GetExternalBookImageUri(doc as Book, isThumbnail), documentNumber, isThumbnail);

            if (Equals(doc.DocType, typeof (AudioBook).Name))
                return GetLocalImageUrl(GetExternalAudioBookImageUri(doc as AudioBook, isThumbnail),
                                        documentNumber, isThumbnail);

            if (Equals(doc.DocType, typeof (Cd).Name))
                return GetLocalImageUrl(GetExternalCdImageUri(doc as Cd, isThumbnail),  documentNumber, isThumbnail);
            return string.Empty;
        }
Exemplo n.º 2
0
        private void FillProperties(Document doc, string branch, IEnumerable<DocumentItem> docItems)
        {
            var items = docItems.Select(x => x).Where(x => x.Branch.Equals(branch) && x.IsReservable).ToList();

            if (items.Any())
            {
                Branch = branch;
                Department = items.Where(x => x.Department != null).Select(x => x.Department).Distinct();
                PlacementCode = items.FirstOrDefault().PlacementCode;

                TotalCount = items.Count();
                AvailableCount = items.Count(x => x.LoanStatus == null && !x.OnHold);

                if (AvailableCount == 0)
                {
                    var dueDates = items.Where(x => x.LoanDueDate != null).Select(x => x.LoanDueDate.Value);
                    if (dueDates.Any())
                    {
                        var earliestDueDate = dueDates.OrderBy(x => x).FirstOrDefault();

                        if (!items.Any(x => x.NoRequests > 0))
                        {
                            if (earliestDueDate.CompareTo(DateTime.Now) < 0)
                            {
                                // The due date has passed, but the document is not handed in yet. Set to next day.
                                EarliestAvailableDateFormatted = DateTime.Now.AddDays(1).ToShortDateString();
                            }
                            else
                            {
                                EarliestAvailableDateFormatted = earliestDueDate.ToShortDateString();
                            }

                        }
                        else
                        {
                            var totalNumberOfReservations = items.Sum(x => x.NoRequests);
                            var calculation1 = (totalNumberOfReservations * (doc.StandardLoanTime + AveragePickupTimeInDays));
                            // Below for added days: if it is required to round up the result of dividing m by n
                            // (where m and n are integers), one should compute (m+n-1)/n
                            // Source: Number Conversion, Roland Backhouse, 2001
                            var calculation2 = ( calculation1 + TotalCount - 1 ) / TotalCount;

                            if (TotalCount == 1)
                                EarliestAvailableDateFormatted = earliestDueDate.AddDays(calculation2).ToShortDateString();
                            else
                                EarliestAvailableDateFormatted = earliestDueDate.AddDays(calculation2 + doc.StandardLoanTime).ToShortDateString();

                        }
                    }
                    else
                    {
                        EarliestAvailableDateFormatted = "Ukjent";
            ;                    }
                }
                else
                {
                    EarliestAvailableDateFormatted = "";
                }
            }
        }
Exemplo n.º 3
0
        public BokElskereBook GetExternalBokelskereBook(Document doc)
        {
            if (Equals(doc.DocType, typeof(Book).Name))
            {
                var book = doc as Book;
                if (book != null && book.Isbn != null)
                {
                    var isbn = book.Isbn;
                  isbn =  isbn.Replace("-", "");
                    var xmlBook = new BokElskereBook();

                    xmlBook.FillProperties(_xmluri + "/" + isbn+"/?format=xml");

                    return xmlBook;
                }
            }

            return null;
        }
Exemplo n.º 4
0
        public BokBasenBook GetExternalBokbasenBook(Document doc)
        {
            if (Equals(doc.DocType, typeof(Book).Name))
            {
                var book = doc as Book;
                var isbn = book.Isbn;
                var xmlBook = new BokBasenBook();

                xmlBook.FillProperties(_xmluri + "&ISBN=" + isbn);

                return xmlBook;
            }
            if (Equals(doc.DocType, typeof(AudioBook).Name))
            {
                var book = doc as AudioBook;
                var isbn = book.Isbn;
                var xmlBook = new BokBasenBook();

                xmlBook.FillProperties(_xmluri + "&ISBN=" + isbn);
                return xmlBook;
            }

            return null;
        }
 public void InitDocument()
 {
     _document = new Document();
     var docItems = DocumentItem.GetDocumentItemsFromXml(getDocumentItemsXml(), getDocumentCircItemsXml(), new RulesRepository());
     _document.GenerateLocationAndAvailabilityInfo(docItems);
 }
Exemplo n.º 6
0
 public static AvailabilityInformation GenerateInfoFor(Document doc, string branch, IEnumerable<DocumentItem> docItems)
 {
     var availabilityInformation = new AvailabilityInformation();
     availabilityInformation.FillProperties(doc, branch, docItems);
     return availabilityInformation.Branch != null ? availabilityInformation : null;
 }
Exemplo n.º 7
0
 public static Document GetObjectFromFindDocXmlBsMarcLight(string xml)
 {
     var document = new Document();
     document.FillPropertiesLight(xml);
     return document;
 }
Exemplo n.º 8
0
 private void GenerateDocumentLocationAndAvailabilityInfo(Document document)
 {
     var documentItems = GetDocumentItems(document.DocumentNumber);
     document.GenerateLocationAndAvailabilityInfo(documentItems);
 }