示例#1
0
 public byte[] GetTeamsByFiltersReport(TeamsFilteredReportListViewModel request, IList <PdfTableCell> tableHeaders)
 {
     throw new NotImplementedException();
 }
示例#2
0
        public byte[] GetTeamsByFiltersReport(TeamsFilteredReportListViewModel request, IList <ExcelTableCell> tableHeaders)
        {
            var tableNames  = tableHeaders.Where(x => x.IsActive).Select(x => x.Name).ToList();
            var tableHelper = new ExcelTableHelper();
            var headers     = tableHelper.GetTeamsByFiltersReportTableHeaders();

            var result = new StringBuilder();

            result.Append(string.Join(',', tableNames));
            result.AppendLine();

            var row = 0;

            foreach (var assignee in request.Assignees)
            {
                bool isSettedAssignee = false;
                foreach (var activity in assignee.ActivityView.Activities)
                {
                    foreach (var loggedTime in activity.LoggedTimeView.LoggedTimes)
                    {
                        ++row;

                        foreach (var name in tableNames)
                        {
                            if (name == headers[0].Name)
                            {
                                result.Append($"{row}, ");
                            }
                            else if (name == headers[1].Name)
                            {
                                if (isSettedAssignee)
                                {
                                    continue;
                                }
                                result.Append($"{assignee.AssigneeName}, ");
                                isSettedAssignee = true;
                            }
                            else if (name == headers[2].Name)
                            {
                                result.Append($"{loggedTime.ProjectName}, ");
                            }
                            else if (name == headers[3].Name)
                            {
                                result.Append($"{activity.ActivityName}, ");
                            }
                            else if (name == headers[4].Name)
                            {
                                result.Append($"{loggedTime.ActivityStatus}, ");
                            }
                            else if (name == headers[5].Name)
                            {
                                result.Append($"{activity.LoggedTimeView.TotalEstimatedTime}, ");
                            }
                            else if (name == headers[6].Name)
                            {
                                result.Append($"{activity.LoggedTimeView.TotalLoggedTime}, ");
                            }
                        }

                        result.AppendLine();
                    }
                }
            }

            return(Encoding.Unicode.GetBytes(result.ToString()));
        }
示例#3
0
            private StringBuilder GetTeamsHtmlContent(TeamsFilteredReportListViewModel request)
            {
                var result = new StringBuilder();

                result.AppendLine("<table name=\"teams-report\">");
                result.AppendLine("<tr>");

                var tableHelper  = new ExcelTableHelper();
                var tableHeaders = tableHelper.GetTeamsByFiltersReportTableHeaders();

                foreach (var item in tableHeaders)
                {
                    result.AppendLine($"<th style=\"width:{item.Width}px; alignment:{item.Alignment.ToString().ToLower()};\">{item.Name}</th>");
                }

                var rowOrder = 0;

                result.AppendLine("</tr>");

                var previousAssigneeName = string.Empty;

                foreach (var assignee in request.Assignees)
                {
                    var previousProjectName  = string.Empty;
                    var previousActivityName = string.Empty;
                    foreach (var activity in assignee.ActivityView.Activities)
                    {
                        var loggedTime = activity.LoggedTimeView.LoggedTimes[0];

                        result.AppendLine("<tr>");
                        result.AppendLine($"<td>{++rowOrder}</td>");

                        var assigneeNameReference =
                            EliminatedDuplicate(assignee.AssigneeName, previousAssigneeName) != string.Empty
                            ? $"<a href=\"{IndrivoAddress}/ApplicationUsers/Details/{assignee.AssigneeId}\">" +
                            $"{EliminatedDuplicate(assignee.AssigneeName, previousAssigneeName)}</a>"
                            : $"{EliminatedDuplicate(assignee.AssigneeName, previousAssigneeName)}";
                        result.AppendLine(
                            $"<td>{assigneeNameReference}</td>");

                        var projectNameReference =
                            EliminatedDuplicate(loggedTime.ProjectName, previousProjectName) != string.Empty
                                ? $"<a href=\"{IndrivoAddress}/Activities/{activity.ProjectId}\">" +
                            $"{EliminatedDuplicate(loggedTime.ProjectName, previousProjectName)}</a>"
                                : $"{EliminatedDuplicate(loggedTime.ProjectName, previousProjectName)}";
                        result.AppendLine(
                            $"<td>" +
                            $"{projectNameReference}</td>");

                        var activityNameReference =
                            EliminatedDuplicate(activity.ActivityName, previousActivityName) != string.Empty
                                ? $"<a href=\"{IndrivoAddress}/Activities/Details/{activity.ActivityId}\">" +
                            $"{EliminatedDuplicate(activity.ActivityName, previousActivityName)}</a>"
                                : $"{EliminatedDuplicate(activity.ActivityName, previousActivityName)}";
                        result.AppendLine(
                            $"<td>" +
                            $"{activityNameReference}</td>");

                        result.AppendLine($"<td>{loggedTime.ActivityStatus}</td>");
                        result.AppendLine($"<td>{activity.LoggedTimeView.TotalEstimatedTime}</td>");
                        result.AppendLine($"<td>{activity.LoggedTimeView.TotalLoggedTime}</td>");
                        result.AppendLine("</tr>");

                        previousAssigneeName = assignee.AssigneeName;
                        previousActivityName = activity.ActivityName;
                        previousProjectName  = loggedTime.ProjectName;
                    }
                }

                result.AppendLine("</table>");

                return(result);
            }