예제 #1
0
        //
        // DO NOT USE ConfigureAwait(false) WITH ProcessAsync() unless ensuring ProcessAsync() implementation is cross-thread compatible
        // ProcessAsync() often does a lot with forms in the UI context
        //


        /// <summary>Process the first valid product. Create default context</summary>
        /// <returns>Returns either the status handler from the process, or null if all books have been processed</returns>
        public static async Task <StatusHandler> ProcessFirstValidAsync(this IProcessable processable)
        {
            var libraryBook = processable.getNextValidBook();

            if (libraryBook == null)
            {
                return(null);
            }

            return(await processBookAsync(processable, libraryBook));
        }