Beispiel #1
0
        /// <summary>
        /// Gets a person from the system.
        /// Invocations of this method are rate-limited, with a restriction of 60 calls per IP address every 60 seconds.
        /// </summary>
        /// <param name="uid"></param>
        /// <param name="authHeader"></param>
        /// <param name="tDXEnvironment"></param>
        /// <returns></returns>
        public async Task <User> GetPersonByUIDAsync(Guid uid, string authHeader, TDXEnvironment tDXEnvironment)
        {
            JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            var bearer = $"Bearer {authHeader}";

            RestClient  restClient  = new RestClient(tDXEnvironment.ClientUrl + (tDXEnvironment.IsSandboxEnvironment ? "SBTDWebApi" : "TDWebApi"));
            RestRequest restRequest = new RestRequest($"api/people/{uid}", Method.GET);

            restRequest.AddHeader("accept", "application/json");
            restRequest.AddHeader("Authorization", bearer);

            if (tDXEnvironment.ProxyURL != null)
            {
                restClient.Proxy = new WebProxy(tDXEnvironment.ProxyURL, tDXEnvironment.ProxyPort);
            }

            TaskCompletionSource <IRestResponse> taskCompletion = new TaskCompletionSource <IRestResponse>();

            RestRequestAsyncHandle handle = restClient.ExecuteAsync(
                restRequest,
                r => taskCompletion.SetResult(r)
                );

            RestResponse response = (RestResponse)(await taskCompletion.Task);

            if (response.StatusCode == HttpStatusCode.NotFound)
            {
                return(null);
            }

            return(JsonConvert.DeserializeObject <User>(response.Content));
        }
Beispiel #2
0
        // POST https://yourSchool.Teamdynamix.com/TDWebApi/api/{appId}/tickets?EnableNotifyReviewer={EnableNotifyReviewer}&NotifyRequestor={NotifyRequestor}&NotifyResponsible={NotifyResponsible}&AllowRequestorCreation={AllowRequestorCreation}
        // Description: Creates a ticket.
        // Invocations of this method are rate-limited, with a restriction of 120 calls per IP address every 60 seconds.
        public async Task <Ticket> CreateTicketAsync(Ticket ticket, int appID, TicketCreateOptions ticketCreateOptions, string authHeader, TDXEnvironment tDXEnvironment)
        {
            JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            var bearer = $"Bearer {authHeader}";

            RestClient  restClient  = new RestClient(tDXEnvironment.ClientUrl + (tDXEnvironment.IsSandboxEnvironment ? "SBTDWebApi" : "TDWebApi"));
            RestRequest restRequest = new RestRequest($"api/{appID}/tickets", Method.POST);

            restRequest.AddParameter("EnableNotifyReviewer", ticketCreateOptions.EnableNotifyReviewer);
            restRequest.AddParameter("NotifyRequestor", ticketCreateOptions.NotifyRequestor);
            restRequest.AddParameter("NotifyResponsible", ticketCreateOptions.NotifyResponsible);
            restRequest.AddParameter("AllowRequestorCreation", ticketCreateOptions.AllowRequestorCreation);

            restRequest.AddHeader("accept", "application/json");
            restRequest.AddHeader("Authorization", bearer);
            string jsonObject = JsonConvert.SerializeObject(ticket, Formatting.Indented, jsonSerializerSettings);

            restRequest.AddParameter("application/json", jsonObject, ParameterType.RequestBody);

            if (tDXEnvironment.ProxyURL != null)
            {
                restClient.Proxy = new WebProxy(tDXEnvironment.ProxyURL, tDXEnvironment.ProxyPort);
            }

            TaskCompletionSource <IRestResponse> taskCompletion = new TaskCompletionSource <IRestResponse>();

            RestRequestAsyncHandle handle = restClient.ExecuteAsync(
                restRequest,
                r => taskCompletion.SetResult(r)
                );

            RestResponse response = (RestResponse)(await taskCompletion.Task);

            if (response.StatusCode == HttpStatusCode.NotFound)
            {
                return(null);
            }

            return(JsonConvert.DeserializeObject <Ticket>(response.Content));
        }
Beispiel #3
0
        /// <summary>
        /// Gets all active ticket sources.
        /// Invocations of this method are rate-limited, with a restriction of 60 calls per IP address every 60 seconds.
        /// </summary>
        /// <param name="appID"></param>
        /// <param name="authHeader"></param>
        /// <param name="tDXEnvironment"></param>
        /// <returns>A list of all active ticket sources. (IEnumerable(Of TeamDynamix.Api.Tickets.TicketSource)) </returns>
        public async Task <List <TicketSource> > GetTicketSourcesAsync(int appID, string authHeader, TDXEnvironment tDXEnvironment)
        {
            var bearer = $"Bearer {authHeader}";

            RestClient  restClient  = new RestClient(tDXEnvironment.ClientUrl + (tDXEnvironment.IsSandboxEnvironment ? "SBTDWebApi" : "TDWebApi"));
            RestRequest restRequest = new RestRequest($"api/{appID}/tickets/sources", Method.GET);

            restRequest.AddHeader("accept", "application/json");
            restRequest.AddHeader("Authorization", bearer);

            if (tDXEnvironment.ProxyURL != null)
            {
                restClient.Proxy = new WebProxy(tDXEnvironment.ProxyURL, tDXEnvironment.ProxyPort);
            }

            TaskCompletionSource <IRestResponse> taskCompletion = new TaskCompletionSource <IRestResponse>();

            RestRequestAsyncHandle handle = restClient.ExecuteAsync(
                restRequest,
                r => taskCompletion.SetResult(r)
                );

            RestResponse response = (RestResponse)(await taskCompletion.Task);

            if (response.StatusCode == HttpStatusCode.NotFound)
            {
                return(null);
            }

            return(JsonConvert.DeserializeObject <List <TicketSource> >(response.Content));
        }
        public async Task <string> GetAuthHeaderAsync(AdminTokenParameters adminTokenParameters, TDXEnvironment tDXEnvironment)
        {
            JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            RestClient  restClient  = new RestClient(tDXEnvironment.ClientUrl + (tDXEnvironment.IsSandboxEnvironment ? "SBTDWebApi" : "TDWebApi"));
            RestRequest restRequest = new RestRequest($"api/auth/loginadmin", Method.POST);

            restRequest.AddHeader("accept", "application/json");
            string jsonObject = JsonConvert.SerializeObject(adminTokenParameters, Formatting.Indented, jsonSerializerSettings);

            restRequest.AddParameter("application/json", jsonObject, ParameterType.RequestBody);

            if (tDXEnvironment.ProxyURL != null)
            {
                restClient.Proxy = new WebProxy(tDXEnvironment.ProxyURL, tDXEnvironment.ProxyPort);
            }

            TaskCompletionSource <IRestResponse> taskCompletion = new TaskCompletionSource <IRestResponse>();

            RestRequestAsyncHandle handle = restClient.ExecuteAsync(
                restRequest,
                r => taskCompletion.SetResult(r)
                );

            RestResponse response = (RestResponse)(await taskCompletion.Task);

            if (response.StatusCode == HttpStatusCode.NotFound)
            {
                return(null);
            }

            return(response.Content);
        }
Beispiel #5
0
        /// <summary>
        /// Performs a restricted lookup of TeamDynamix people. Will not return full user information for each matching user.
        /// Invocations of this method are rate-limited, with a restriction of 75 calls per IP address every 10 seconds.
        /// </summary>
        /// <param name="searchText"></param>
        /// <param name="authHeader"></param>
        /// <param name="tDXEnvironment"></param>
        /// <param name="maxResults"></param>
        /// <returns></returns>
        public async Task <List <User> > GetPersonLookupAsync(string searchText, string authHeader, TDXEnvironment tDXEnvironment, int maxResults = 50)
        {
            var bearer = $"Bearer {authHeader}";

            RestClient  restClient  = new RestClient(tDXEnvironment.ClientUrl + (tDXEnvironment.IsSandboxEnvironment ? "SBTDWebApi" : "TDWebApi"));
            RestRequest restRequest = new RestRequest($"api/people/lookup", Method.GET);

            restRequest.AddParameter("searchText", searchText);
            restRequest.AddParameter("maxResults", maxResults);

            restRequest.AddHeader("accept", "application/json");
            restRequest.AddHeader("Authorization", bearer);

            if (tDXEnvironment.ProxyURL != null)
            {
                restClient.Proxy = new WebProxy(tDXEnvironment.ProxyURL, tDXEnvironment.ProxyPort);
            }

            TaskCompletionSource <IRestResponse> taskCompletion = new TaskCompletionSource <IRestResponse>();

            RestRequestAsyncHandle handle = restClient.ExecuteAsync(
                restRequest,
                r => taskCompletion.SetResult(r)
                );

            RestResponse response = (RestResponse)(await taskCompletion.Task);

            if (response.StatusCode == HttpStatusCode.NotFound)
            {
                return(null);
            }

            return(JsonConvert.DeserializeObject <List <User> >(response.Content));
        }