Esempio n. 1
0
        public static SuspendedUserResult SuspendItem(this AbstractProxy proxy, object item, Modalidade modalidade, HttpClient httpClient)
        {
            SuspendedUserResult suspendedResult = new SuspendedUserResult()
            {
                MoodleId = null,
                LastUrl  = ""
            };

            UpdateUserClient        client        = new UpdateUserClient();
            GetUserByUsernameClient getUserClient = new GetUserByUsernameClient();

            client.AddHttpClient(httpClient);
            getUserClient.AddHttpClient(httpClient);

            proxy.BuildMoodleClient(client, MoodleTokenType.OfficialMoodleApiFunctions);
            proxy.BuildMoodleClient(getUserClient, MoodleTokenType.LocalMoodleExternalApiGetInfoToken);

            long?moodleId = null;

            if (item is Professor professor)
            {
                moodleId = professor?.GetMoodleUserId(modalidade, getUserClient, httpClient);
            }
            else if (item is Aluno aluno)
            {
                moodleId = aluno?.GetMoodleUserId(modalidade, getUserClient, httpClient);
            }

            if (!moodleId.HasValue)
            {
                return(suspendedResult);
            }

            UpdateUserRequest request = new UpdateUserRequest()
            {
                Id        = moodleId.Value,
                Suspended = 1
            };

            Task <EmptyResponse> task = client.Post(request);

            task.Wait();

            suspendedResult.LastUrl  = client.LastUrl;
            suspendedResult.MoodleId = moodleId;
            return(suspendedResult);
        }