private byte[] GetExportContent(ReportModel model, IReportService service)
 {
     var cards = CardHelper.GetCards(model, TrelloInstance).ToList();
     var lists = TrelloInstance.Lists.ForBoard(new BoardId(model.BoardId)).OrderBy(l => l.Pos).ToList();
     var result = service.GenerateCardReports(cards, lists, model.UserIds);
     return result;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Get cards for a report
        /// </summary>
        /// <param name="model">Input model</param>
        /// <param name="instance">Trello instance</param>
        /// <returns>Card list</returns>
        public static IEnumerable<Card> GetCards(ReportModel model, ITrello instance)
        {
            // set query start date
            var startDate = DateTimeHelper.GetStartDate(model.StartDate, model.ReportIntervalType);

            // set query end date
            var endDate = DateTimeHelper.GetEndDate(startDate, model.ReportIntervalType);

            // query cards
            var cards = instance.Cards.ForBoard(new BoardId(model.BoardId));

            // if interval type is actually, doesn't need activity filter
            if (model.ReportIntervalType != "actually")
            {
                // query card actions
                var changedCards = GetCardIdsFromActions(instance, model.BoardId, startDate, endDate);

                // filter cards by date interval
                cards = cards.Where(c => changedCards.Contains(c.Id));
            }

            // filter cards by lists
            cards = cards.Where(c => model.ListIds.Contains(c.IdList));

            // filter cards by user
            cards = cards.Where(c => c.Members.Select(m => m.Id).Intersect(model.UserIds).Any());

            // separated cards by labels
            cards = SepareteCardByLabels(cards);

            // order cards
            cards = OrderCards(cards);

            return cards;
        }
        public ActionResult ReportPreview(ReportModel model)
        {
            // if input data is empty
            if (model == null || string.IsNullOrEmpty(model.BoardId))
            {
                return CreateResponse(null);
            }

            var cards = CardHelper.GetCards(model, TrelloInstance);
            return CreateResponse(cards);
        }
 public FileContentResult Word(ReportModel model)
 {
     var result = GetExportContent(model, new Sharp2WordService());
     var fileName = string.Format("trello-report-{0}.doc", DateTime.Now.ToString("yyyy-MM-dd"));
     return File(result, "application/vnd.ms-word", fileName);
 }
 public ActionResult Excel(ReportModel model)
 {
     var result = GetExportContent(model, new NpoiExcelService());
     var fileName = string.Format("trello-report-{0}.xls", DateTime.Now.ToString("yyyy-MM-dd"));
     return File(result, "application/vnd.ms-excel", fileName);
 }