コード例 #1
0
        //TODO: verify what time trello sends at client
        //TODO: unit tests
        public CardStatsModel Build(string cardId)
        {
            var cardHistory = cardHistoryService.Get(cardId);
            var card        = taskManagerClient.GetCard(cardId);
            var result      = new CardStatsModel
            {
                Id           = cardId,
                Name         = card.Name,
                LastActivity = card.LastActivity
            };

            result.SetLabels(card.Labels);

            if (cardHistory.Movements.Length <= 1)
            {
                return(result);
            }

            if (cardHistory.CreateDate.HasValue)
            {
                AddDuration(result, cardHistory.Movements[0].FromListId, cardHistory.Movements[0].Date.Subtract(cardHistory.CreateDate.Value));
            }
            for (var i = 0; i < cardHistory.Movements.Length - 1; i++)
            {
                if (!string.Equals(cardHistory.Movements[i].ToListId, cardHistory.Movements[i + 1].FromListId))
                {
                    loggerFactory.Get <CardStatsBuilder>()
                    .LogError($"Broken actions chain obtained for cardId {cardId}. To {cardHistory.Movements[i].ToListId}, From {cardHistory.Movements[i + 1].FromListId}, chain index {i}.");
                }
                else
                {
                    var listId   = cardHistory.Movements[i + 1].FromListId;
                    var duration = cardHistory.Movements[i + 1].Date.Subtract(cardHistory.Movements[i].Date);
                    AddDuration(result, listId, duration);
                }
            }
            return(result);
        }
コード例 #2
0
        public void ItCanLoadParticularCard()
        {
            var actual = trelloClient.GetCard("lpDZvlGm");

            Assert.IsNotNull(actual);
        }