public async Task <IEnumerable <AsanaTask> > GetAsync(AsanaTaskQuery query) { var baseUrl = _asanaParams.TasksUrl + "?"; var url = baseUrl; url = query.Workspace != null ? url + $"workspace={query.Workspace}&": url; url = query.Assignee != null ? url + $"assignee={query.Assignee}&" : url + $"assignee=me&"; url = query.Project != null ? baseUrl + $"project={query.Project}&" : url; url = query.Tag != null ? baseUrl + $"tag={query.Tag}" : url; url = query.CompletedSince != null ? url + $"completed_since={query.CompletedSince}&" : url; url = query.ModifiedSince != null ? url + $"modified_since={query.ModifiedSince}&" : url; var uri = new Uri(url); try { var response = await _restClient.GetAsync <JObject>(uri); var result = response.GetValue("data").ToObject <IEnumerable <AsanaTask> >(); return(result); } catch (Exception exp) { Logger.GetLogger().Error($"terminalAsana error = {exp.Message}"); throw; } }
public async Task Should_Get_Tasks_WithWorkspaceAndUser() { _restClientMock.Setup(x => x.GetAsync <JObject>( It.Is <Uri>(y => y.AbsoluteUri.Equals(new Uri(_parameters.TasksUrl + "?workspace=1&assignee=me&").AbsoluteUri)), It.IsAny <string>(), It.IsAny <Dictionary <string, string> >() )).ReturnsAsync(JObject.Parse(Fixtures.FixtureData.SampleTasksDataResponse())); var query = new AsanaTaskQuery() { Workspace = "1" }; var tasks = await _asanaTasksService.GetAsync(query); //Assertion Assert.IsNotNull(tasks); _restClientMock.Verify(); }
public override async Task Run() { var query = new AsanaTaskQuery() { Workspace = ActivityUI.WorkspacesList.Value, Assignee = ActivityUI.UsersList.Value, Project = ActivityUI.ProjectsList.Value }; var tasks = await AClient.Tasks.GetAsync(query); var dataRows = tasks.Select(t => new TableRowDTO() { Row = { new TableCellDTO() { Cell = new KeyValueDTO("Task name", t.Name) }, new TableCellDTO() { Cell = new KeyValueDTO("Task id", t.Id) } } }).ToList(); var payload = new StandardTableDataCM() { Table = dataRows }; var customPayload = new AsanaTaskListCM() { Tasks = tasks.Select(t => Mapper.Map <AsanaTaskCM>(t)).ToList() }; Payload.Add(RunTimeCrateLabel, payload); Payload.Add(RunTimeCrateLabelCustomCM, customPayload); }