public BookItem[] AssignedBooks( Valence.Request.Parameters param, ref string message ) { var classOrgInfo = new Valence.OrgUnitInfo() {Id = param.ClassOrgId}; var result = new List<BookItem>(); result.AddRange( GetBooksForClass( param, classOrgInfo, ref message ) ); return result.ToArray(); }
public BookItem[] AssignedBooks(Valence.Request.Parameters param, ref string message) { var classOrgInfo = new Valence.OrgUnitInfo() { Id = param.ClassOrgId }; var result = new List <BookItem>(); result.AddRange(GetBooksForClass(param, classOrgInfo, ref message)); return(result.ToArray()); }
private List <BookItem> GetBooksForClass( Valence.Request.Parameters param, Valence.OrgUnitInfo course, ref string message) { Uri uri = param.UserContext.CreateAuthenticatedUri( "/d2l/api/" + param.ApiVersion("le") + "/" + course.Id + "/content/isbn/", "GET"); var request = (HttpWebRequest)WebRequest.Create(uri); request.Method = "GET"; var handler = new Valence.Request.ErrorHandler(); var result = new List <BookItem>(); Valence.Request.Perform( request, param.UserContext, delegate(string data) { var serializer = new JavaScriptSerializer(); var books = serializer.Deserialize <Valence.Book[]>(data); if ((books == null) || (books.Length <= 0)) { return; } foreach (Valence.Book b in books) { try { GoogleBook.Volume volume = GoogleBook.Api.Query(b.Isbn); if (volume.TotalItems != 0) { GoogleBook.Item item = volume.items.First(); BookItem book = FromGoogleBookToBookItem(item); result.Add(book); } } catch (ArgumentNullException) {} } }, handler.Process); if (handler.IsError) { message = "Unable to retrieve assigned books. " + handler.Message; } return(result); }