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; }
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 = ""; } } }
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; }
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); }
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; }
public static Document GetObjectFromFindDocXmlBsMarcLight(string xml) { var document = new Document(); document.FillPropertiesLight(xml); return document; }
private void GenerateDocumentLocationAndAvailabilityInfo(Document document) { var documentItems = GetDocumentItems(document.DocumentNumber); document.GenerateLocationAndAvailabilityInfo(documentItems); }