Exemplo n.º 1
0
        public void MakeClone()
        {
            books.Clear();
            editions.Clear();
            genres.Clear();
            companies.Clear();

            foreach (Book b in database.bookManager.books)
            {
                books.Add(new Book(b.Title, b.Author, b.edition, b.genre, b.PublishYear, b.PublishLocation, b.Publisher, b.Isbn, b.PagesNumber, b.Note));
            }
            foreach (EGC e in database.egcManager.editions)
            {
                editions.Add(new EGC(e.Name));
            }
            foreach (EGC g in database.egcManager.genres)
            {
                genres.Add(new EGC(g.Name));
            }

            settings.SortBy = database.settings.SortBy;
            settings.SortUp = database.settings.SortUp;

            settings.SortUpEditions = database.settings.SortUpEditions;
            settings.SortUpGenres   = database.settings.SortUpGenres;

            settings.SortBooks    = database.settings.SortBooks;
            settings.SortEditions = database.settings.SortEditions;
            settings.SortGenres   = database.settings.SortGenres;
        }
        private async void GetBooks()
        {
            Task <List <BookModel> > task = Task.Run <List <BookModel> >(() => {
                var t = _bookDataAccess.GetAllData(Properties.Resources.GetAllBooks);
                return(t);
            });

            BookCollection.Clear();
            _log.Message("Getting All books from the database");
            var booksCollection = await task;

            booksCollection.ForEach(t => BookCollection.Add(t));
        }
Exemplo n.º 3
0
        private async void GetBooks()
        {
            ErrorMsgVisibility = Visibility.Collapsed;
            BookCollection.Clear();

            Task <List <BookModel> > task = Task.Run <List <BookModel> >(() => {
                var t = _dataAccess.GetAllData(Properties.Resources.GetAllBooks);
                return(t);
            });

            _log.Message("Getting All the bok from Database");
            var booksCollection = await task;

            booksCollection.ForEach(t => BookCollection.Add(t));
        }
Exemplo n.º 4
0
        /*
         * Method for synchronization if the collection of the ViewModels changed with the
         * cases add, remove and reset.
         */
        private void ViewModelCollectionChanged(object bookCollectionVM, NotifyCollectionChangedEventArgs e)
        {
            if (synchDisabled)
            {
                return;
            }

            // Disable synchronization
            synchDisabled = true;

            switch (e.Action)
            {
            //add a new book to the model collection
            case NotifyCollectionChangedAction.Add:
                foreach (var newBook in e.NewItems.OfType <BookViewModel>().Select(v => v.wrappedBook).OfType <Book>())
                {
                    bookCollection.Add(newBook);
                }
                break;

            //remove a book from the model collection
            case NotifyCollectionChangedAction.Remove:
                foreach (var oldBook in e.OldItems.OfType <BookViewModel>().Select(v => v.wrappedBook).OfType <Book>())
                {
                    bookCollection.Remove(oldBook);
                }
                break;

            /*
             * reset the model collection by clearing the collection and adding the models of the
             * saved viewmodels.
             */
            case NotifyCollectionChangedAction.Reset:
                bookCollection.Clear();
                foreach (var book in e.NewItems.OfType <BookViewModel>().Select(v => v.wrappedBook).OfType <Book>())
                {
                    bookCollection.Add(book);
                }
                break;
            }

            //Enable synchronization
            synchDisabled = false;
        }
Exemplo n.º 5
0
        public void GetResponse(bool useProductionEndpoint, ref BookCollection books)
        {
            _status        = SearchStatus.Working;
            _errorMessages = null;
            books.Clear();

            var endpoint = useProductionEndpoint ? new Uri(ENDPOINT_PRODUCTION) : new Uri(ENDPOINT_SANDBOX);

            var data = Encoding.UTF8.GetBytes(ToXml());

            var request = (HttpWebRequest)WebRequest.Create(endpoint);

            request.Method        = WebRequestMethods.Http.Post;
            request.ContentType   = "text/xml";
            request.ContentLength = data.Length;
            request.Headers.Add("X-EBAY-SOA-SERVICE-NAME", "FindingService");
            request.Headers.Add("X-EBAY-SOA-GLOBAL-ID", GetGlobalId(_filter.Location));
            request.Headers.Add("X-EBAY-SOA-MESSAGE-ENCODING", "UTF-8");
            request.Headers.Add("X-EBAY-SOA-OPERATION-NAME", "findItemsAdvanced");
            request.Headers.Add("X-EBAY-SOA-REQUEST-DATA-FORMAT", DATA_FORMAT);
            request.Headers.Add("X-EBAY-SOA-RESPONSE-DATA-FORMAT", DATA_FORMAT);
            request.Headers.Add("X-EBAY-SOA-SECURITY-APPNAME", _appId);

            try
            {
                // write post data
                using (var writer = request.GetRequestStream())
                {
                    writer.Write(data, 0, data.Length);
                }
            }
            catch (WebException ex)
            {
                _errorMessages = new List <string> {
                    ex.Message
                };
                _status = SearchStatus.Failed;
                return;
            }

            string responseXml;

            try
            {
                using (var response = (HttpWebResponse)request.GetResponse())
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        responseXml = reader.ReadToEnd();
                    }
            }
            catch (WebException ex)
            {
                if (ex.Response == null)
                {
                    _errorMessages = new List <string> {
                        ex.Message
                    };
                    _status = SearchStatus.Failed;
                    return;
                }

                using (var reader = new StreamReader(ex.Response.GetResponseStream()))
                {
                    responseXml = reader.ReadToEnd();
                }
            }

            ParseResponse(responseXml, ref books);
        }