Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
        }