public CreateCourseRequest(
     CreateCourseData data,
     IRestClient restClient,
     ValenceAuthenticator auth
     )
 {
     m_courseData = data;
     m_restClient = restClient;
     m_auth       = auth;
 }
Пример #2
0
 public CreateUserRequest(
     CreateUserData data,
     IRestClient restClient,
     ValenceAuthenticator auth
     )
 {
     m_userData   = data;
     m_restClient = restClient;
     m_auth       = auth;
 }
Пример #3
0
 public CreateEnrollRequest(
     CreateEnrollData data,
     IRestClient restClient,
     ValenceAuthenticator auth
     )
 {
     m_enrollData = data;
     m_restClient = restClient;
     m_auth       = auth;
 }
Пример #4
0
        static void Main(string[] args)
        {
            string appId   = ConfigurationManager.AppSettings["applicationId"];
            string appKey  = ConfigurationManager.AppSettings["applicationKey"];
            string userId  = ConfigurationManager.AppSettings["serviceUserId"];
            string userKey = ConfigurationManager.AppSettings["serviceUserKey"];
            string lmsUrl  = ConfigurationManager.AppSettings["lmsUrl"];

            ValenceAuthenticatorFactory authFactory = new ValenceAuthenticatorFactory(
                appId, appKey, userId, userKey, lmsUrl);
            ValenceAuthenticator auth = authFactory.CreateAuthenticator();

            RestClient restClient = new RestClient("https://" + lmsUrl);

            JsonSerializer     serializer = new JsonSerializer();
            CreateUserResponse userResponse;

            using (StreamReader file = File.OpenText("user.json")) {
                CreateUserData    userData    = (CreateUserData)serializer.Deserialize(file, typeof(CreateUserData));
                CreateUserRequest userRequest = new CreateUserRequest(
                    userData,
                    restClient,
                    auth
                    );
                userResponse = userRequest.SendRequest();
            }

            CreateCourseResponse courseResponse;

            using (StreamReader file = File.OpenText("course.json")) {
                CreateCourseData    courseData    = ( CreateCourseData )serializer.Deserialize(file, typeof(CreateCourseData));
                CreateCourseRequest courseRequest = new CreateCourseRequest(
                    courseData,
                    restClient,
                    auth
                    );
                courseResponse = courseRequest.SendRequest();
            }

            CreateEnrollData enrollData = new CreateEnrollData(
                userResponse.UserId,
                courseResponse.Identifier
                );
            CreateEnrollRequest enrollRequest = new CreateEnrollRequest(
                enrollData,
                restClient,
                auth
                );

            enrollRequest.SendRequest();

            Console.WriteLine("User, course, and enrollment created.");
            Console.ReadKey();
        }
Пример #5
0
        private WhoAmIUser WhoAmI( )
        {
            Debug.Assert(m_valenceUserContext != null, "This call can only be used by an authenticated user");

            var client        = new RestClient("https://" + LMS_URL);
            var authenticator = new ValenceAuthenticator(m_valenceUserContext);
            var request       = new RestRequest(WHOAMI_ROUTE);

            authenticator.Authenticate(client, request);
            var response = client.Execute <WhoAmIUser>(request);

            return(response.Data);
        }
Пример #6
0
        public async Task Put <T>(string route, T data)
        {
            var authenticator = new ValenceAuthenticator(ValenceUserContext);
            var request       = new RestRequest(route)
            {
                RequestFormat = DataFormat.Json,
                Method        = Method.PUT,
            };

            request.AddBody(data);

            authenticator.Authenticate(Client, request);

            await Client.ExecuteTaskAsync(request);
        }
        private WhoAmIUser WhoAmI( )
        {
            if (m_valenceUserContext == null)
            {
                throw new Exception("This method can only be used for an authenticated user");
            }

            var client        = new RestClient("https://" + LMS_URL);
            var authenticator = new ValenceAuthenticator(m_valenceUserContext);
            var request       = new RestRequest(WHOAMI_ROUTE);

            authenticator.Authenticate(client, request);
            var response = client.Execute <WhoAmIUser>(request);

            return(response.Data);
        }
Пример #8
0
        public async Task <T> Request <T>(string route) where T : new()
        {
            var authenticator = new ValenceAuthenticator(ValenceUserContext);
            var request       = new RestRequest(route);

            authenticator.Authenticate(Client, request);
            var response = await Client.ExecuteTaskAsync(request);

            if ((int)response.StatusCode < 200 || (int)response.StatusCode > 299)
            {
                throw new Exception(response.Content);
            }

            try {
                return(new RestSharp.Deserializers.JsonDeserializer().Deserialize <T>(response));
            } catch (System.Xml.XmlException)
            {
                throw new Exception(response.Content);
            }
        }
        public void Init()
        {
            var mockUserContext = new Mock<ID2LUserContext>();

            string authQueryParameters = string.Join( "&", AUTH_TOKENS );

            mockUserContext.Setup(
                ctxt => ctxt.CreateAuthenticatedTokens( It.IsAny<Uri>(), It.IsAny<string>() ) )
                .Returns( ( Uri fullUrl, string method ) => AUTH_TOKENS );

            m_authenticator = new ValenceAuthenticator( mockUserContext.Object );
        }