예제 #1
0
        public static async Task <System.IO.Stream> DoGetErrorLog(IodClientSession session, string logId)
        {
            const string MethodUrl          = "api/v2/activity/errorLog/id?{id}";
            const string ContentTypeAccept  = "application/json";
            const string ContentTypeRequest = "application/json";

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(session.serverUrl);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(ContentTypeAccept));

                var requestMessage = MakeRequestMessage(
                    session,
                    null,
                    ContentTypeRequest,
                    MethodUrl.Replace("{id}", logId)
                    );

                HttpResponseMessage resp = await client.SendAsync(requestMessage);

                if (resp.IsSuccessStatusCode)
                {
                    var content = await resp.Content.ReadAsStreamAsync();

                    return(content);
                }
                else
                {
                    return(null);
                }
            }
        }
예제 #2
0
        public static async Task <IEnumerable <ActivityLogEntry> > DoGetActivityLog(IodClientSession session, string taskId, int rowLimit = 800)
        {
            const string MethodUrl   = "api/v2/activity/activityLog?taskId={taskId}"; //&rowLimit={rowLimit}";
            const string ContentType = "application/json";                            // use json both directions

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(session.serverUrl);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(ContentType));

                var requestMessage = MakeRequestMessage(
                    session,
                    null,
                    ContentType,
                    MethodUrl.Replace("{rowLimit}", rowLimit.ToString()).Replace("{taskId}", taskId)
                    );

                HttpResponseMessage resp = await client.SendAsync(requestMessage);

                if (resp.IsSuccessStatusCode)
                {
                    string content = await resp.Content.ReadAsStringAsync();

                    var contentObject = JsonConvert.DeserializeObject <List <ActivityLogEntry> >(content);
                    return(contentObject);
                }
                else
                {
                    throw new HttpResponseException(resp);
                }
            }
        }
예제 #3
0
        public static async Task <string> DoGetTaskId(IodClientSession session, string taskName, string taskType)
        {
            const string MethodUrl   = "api/v2/task?type={type}";
            const string ContentType = "application/json"; // use json both directions

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(session.serverUrl);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(ContentType));

                var requestMessage = MakeRequestMessage(session, null, ContentType, MethodUrl.Replace("{type}", taskType));

                HttpResponseMessage resp = await client.SendAsync(requestMessage);

                if (resp.IsSuccessStatusCode)
                {
                    // successful request returns a list of Task as Json
                    string content = await resp.Content.ReadAsStringAsync();

                    var contentObject = JsonConvert.DeserializeObject <List <Task> >(content);
                    var theTask       = contentObject
                                        .Where(task => task.name.Equals(taskName, StringComparison.InvariantCultureIgnoreCase))
                                        .FirstOrDefault();
                    if (theTask == null)
                    {
                        throw new ApplicationException($"task: {taskName} of type: {taskType} was not found");
                    }
                    return(theTask.id);
                }
                else
                {
                    throw new HttpResponseException(resp);
                }
            }
        }