private void AuthForLoadCompleted(object sender, ValidateUserCompletedEventArgs e)
        {
            object[] args = e.UserState as object[];
            AuthenticationServiceClient authClient = args[0] as AuthenticationServiceClient;

            // If we failed then there's not much we can do
            if (null != e.Error || e.Cancelled)
            {
                m_gettingFiles = false;

                // Invoke the completion delegate
                (args[1] as EventHandler)(this, new RelevantAssignmentEventArgs(m_files));

                return;
            }

            string authToken = e.Result;

            m_lastAuthToken = authToken;

            // The last thing we do with the authentication client is get the active user
            authClient.GetActiveUserCompleted += new EventHandler <GetActiveUserCompletedEventArgs>(AuthClient_GetActiveUserCompleted);
            authClient.GetActiveUserAsync(authToken, authClient);

            OsbleServiceClient osc = new OsbleServiceClient();

            // What we query for depends on the assignment type
            args[0] = osc;
            if (AssignmentTypes.CriticalReview == m_a.Type)
            {
                // We need to use "GetReviewItems"
                osc.GetReviewItemsCompleted += new EventHandler <GetReviewItemsCompletedEventArgs>(GetReviewItemsCompleted);
                try
                {
                    osc.GetReviewItemsAsync(m_a.ID, authToken, args);
                }
                catch (Exception)
                { }
            }
            else if (AssignmentTypes.CriticalReviewDiscussion == m_a.Type)
            {
                // We need to use "GetMergedReviewDocument"
                osc.GetMergedReviewDocumentCompleted += new EventHandler <GetMergedReviewDocumentCompletedEventArgs>(GetMergedReviewDocumentCompleted);
                try
                {
                    osc.GetMergedReviewDocumentAsync(m_a.ID, authToken, args);
                }
                catch (Exception)
                { }
            }
            else
            {
                // We need to use "GetAssignmentSubmission"
                osc.GetAssignmentSubmissionCompleted += new EventHandler <GetAssignmentSubmissionCompletedEventArgs>(GetAssignmentSubmissionCompleted);
                try
                {
                    osc.GetAssignmentSubmissionAsync(m_a.ID, authToken, args);
                }
                catch (Exception) { }
            }
        }