public async Task <Dashboard> GetDashboard(DashboardId dashboardId) { HttpRequestMessage request() => new HttpRequestMessage(HttpMethod.Get, new Uri("/api/dashboard/" + dashboardId, UriKind.Relative)); var response = await sessionManager.Send(request); return(JsonConvert.DeserializeObject <Dashboard>(response)); }
async Task <DashboardCard> AddCardToDashboard(CardId cardId, DashboardId dashboardId) { var content1 = JObj.Obj(new[] { JObj.Prop("cardId", cardId.Value) }); HttpRequestMessage request1() => new HttpRequestMessage(HttpMethod.Post, new Uri($"/api/dashboard/{dashboardId}/cards", UriKind.Relative)) { Content = ToJsonContent(content1).HttpContent }; var response = await sessionManager.Send(request1); var dashboardCard = JsonConvert.DeserializeObject <DashboardCard>(response); return(dashboardCard); }
public async Task <Dashboard> GetDashboard(DashboardId dashboardId) { HttpRequestMessage request() => new HttpRequestMessage(HttpMethod.Get, new Uri("/api/dashboard/" + dashboardId, UriKind.Relative)); var response = await sessionManager.Send(request); try { return(JsonConvert.DeserializeObject <Dashboard>(response)); } catch (JsonSerializationException e) { throw new MetabaseApiException($"Error parsing response for {nameof(Dashboard)} from:\n{response}", e); } }
public async Task AddCardsToDashboard(DashboardId dashboardId, IReadOnlyList <DashboardCard> cards) { var dashboardCardMapping = await cards .Where(card => card.CardId.HasValue) .Traverse(async card => { var dashboardCard = await AddCardToDashboard(cardId: card.CardId.Value, dashboardId: dashboardId); return(new { stateDashboardCard = card, newDashboardCard = dashboardCard.Id }); }); foreach (var card in dashboardCardMapping) { card.stateDashboardCard.Id = card.newDashboardCard; } await PutCardsToDashboard(dashboardId, cards); }
async Task <DashboardCard> AddCardToDashboard(CardId cardId, DashboardId dashboardId) { var content1 = JObj.Obj(new[] { JObj.Prop("cardId", cardId.Value) }); HttpRequestMessage request1() => new HttpRequestMessage(HttpMethod.Post, new Uri($"/api/dashboard/{dashboardId}/cards", UriKind.Relative)) { Content = ToJsonContent(content1).HttpContent }; var response = await sessionManager.Send(request1); try { return(JsonConvert.DeserializeObject <DashboardCard>(response)); } catch (JsonSerializationException e) { throw new MetabaseApiException($"Error parsing response for {nameof(DashboardCard)} from:\n{response}", e); } }
async Task PutCardsToDashboard(DashboardId dashboardId, IReadOnlyCollection <DashboardCard> cards) { var content = new Dictionary <string, object> { { "cards", cards } }; var jsonContent = ToJsonContent(content); try { HttpRequestMessage request() => new HttpRequestMessage(HttpMethod.Put, new Uri($"/api/dashboard/{dashboardId}/cards", UriKind.Relative)) { Content = jsonContent.HttpContent }; await sessionManager.Send(request); } catch (Exception e) { throw new Exception($"Error putting cards to dashboard {dashboardId}:\n{jsonContent.Json}", e); } }
public async Task DeleteDashboard(DashboardId dashboardId) { HttpRequestMessage request() => new HttpRequestMessage(HttpMethod.Delete, new Uri("/api/dashboard/" + dashboardId, UriKind.Relative)); var response = await sessionManager.Send(request); }