Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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);
        }