public static ReportTotalView GetView <TGroupBy>(this ReportTotalView reportTotalView, Dictionary <TGroupBy, List <TimeEntry> > dictionaryOfGroupsTimeEntries) { var groupByTypeId = reportTotalView.GroupByTypeId; var showColumnIds = reportTotalView.ShowColumnIds; var dateFormatId = reportTotalView.DateFormatId; var dateFrom = reportTotalView.PeriodCell.DateFrom; var dateTo = reportTotalView.PeriodCell.DateTo; reportTotalView.PeriodCell.DisplayNamePeriodValue = GetPeriodCellvalue(dateFrom, dateTo, dateFormatId); HideDisplayNamesByGroupingAndShowColumnsIds(reportTotalView); reportTotalView.GroupedItems = new List <ReportTotalForGroupTypeView>(); foreach (var dictionaryOfGroupTimeEntries in dictionaryOfGroupsTimeEntries) { var reportItemsGroupByTypeView = new ReportTotalForGroupTypeView(groupByTypeId, showColumnIds, dateFormatId).GetView(dictionaryOfGroupTimeEntries); reportTotalView.TimeTotal.TimeActualTotal += reportItemsGroupByTypeView.TimeTotalFor.TimeActualTotalFor; reportTotalView.TimeTotal.TimeEstimatedTotal += reportItemsGroupByTypeView.TimeTotalFor.TimeEstimatedTotalFor; reportTotalView.GroupedItems.Add(reportItemsGroupByTypeView); reportItemsGroupByTypeView.DisplayNames = reportTotalView.DisplayNames; } reportTotalView.TimeTotal.TimeEstimatedTotal = showColumnIds.Contains((int)ShowColumnModelIds.ShowEstimatedTime) ? reportTotalView.TimeTotal.TimeEstimatedTotal : null; return(reportTotalView); }
private void CreateRowsOfListOfHeaders(ReportTotalForGroupTypeView groupedItems, ISheet sheet, XSSFWorkbook workbook) { var listOfHeaders = new List <string>(); if (groupedItems.DisplayNames.DisplayNameDate != null) { listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameDate); } if (groupedItems.DisplayNames.DisplayNameClient != null) { listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameClient); } if (groupedItems.DisplayNames.DisplayNameProject != null) { listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameProject); } if (groupedItems.DisplayNames.DisplayNameMember != null) { listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameMember); } listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameTask); if (groupedItems.DisplayNames.DisplayNameTimeFrom != null) { listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameTimeFrom); } if (groupedItems.DisplayNames.DisplayNameTimeTo != null) { listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameTimeTo); } listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameTimeActual); if (groupedItems.DisplayNames.DisplayNameTimeEstimated != null) { listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameTimeEstimated); } if (groupedItems.DisplayNames.DisplayNameNotes != null) { listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameNotes); } var rowListOfHeaders = sheet.CreateRow(RowIndex); for (var i = 0; i < listOfHeaders.Count; i++) { var cellHeader = rowListOfHeaders.CreateCell(i); cellHeader.SetCellValue(listOfHeaders[i]); cellHeader.CellStyle = CreateHeadersStyle(workbook); } }
private void CreateRowOfGroupByType(ISheet sheet, ReportTotalForGroupTypeView groupedItems, XSSFWorkbook workbook) { sheet.AddMergedRegion(new CellRangeAddress(RowIndex, RowIndex, 0, 1)); var rowGroupByType = sheet.CreateRow(RowIndex); var valueGroupByType = groupedItems.GroupByType.GroupByTypeDisplayName?.ToUpper() + groupedItems.GroupByType.GroupByTypeDisplayNameValue?.ToUpper(); var cellGroupByType = rowGroupByType.CreateCell(0); cellGroupByType.SetCellValue(valueGroupByType); cellGroupByType.CellStyle = CreateGroupByTotalStyle(workbook); }
private void SetWidthForEachTypeOfColumn(ReportTotalForGroupTypeView groupedItems, ISheet sheet) { var сountColumnsOfFirstSize = 0; // Date, Client, Project, Member. var сountColumnsOfSecondSize = 0; // Start, Finish, Act, Est var сountColumnsOfThirdSize = 0; // Notes //var listOfHeaders = new List<string>(); if (groupedItems.DisplayNames.DisplayNameDate != null) { ++сountColumnsOfFirstSize; } if (groupedItems.DisplayNames.DisplayNameClient != null) { ++сountColumnsOfFirstSize; } if (groupedItems.DisplayNames.DisplayNameProject != null) { ++сountColumnsOfFirstSize; } if (groupedItems.DisplayNames.DisplayNameMember != null) { ++сountColumnsOfFirstSize; } //listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameTask); if (groupedItems.DisplayNames.DisplayNameTimeFrom != null) { ++сountColumnsOfSecondSize; } if (groupedItems.DisplayNames.DisplayNameTimeTo != null) { ++сountColumnsOfSecondSize; } //listOfHeaders.Add(groupedItems.DisplayNames.DisplayNameTimeActual); if (groupedItems.DisplayNames.DisplayNameTimeEstimated != null) { ++сountColumnsOfSecondSize; } if (groupedItems.DisplayNames.DisplayNameNotes != null) { ++сountColumnsOfThirdSize; } SetWidthForEachTypeOfColumn(sheet, сountColumnsOfFirstSize, сountColumnsOfSecondSize, сountColumnsOfThirdSize); }
private void CreateRowOfTotalFor(ISheet sheet, ReportTotalForGroupTypeView groupedItems, XSSFWorkbook workbook) { sheet.AddMergedRegion(new CellRangeAddress(RowIndex, RowIndex, 0, 1)); var rowTotalFor = sheet.CreateRow(RowIndex); var cellIndex = 0; var cellValueTotalFor = groupedItems.TimeTotalFor.DisplayNameTimeActualTotalFor.ToUpper() + groupedItems.GroupByType.GroupByTypeDisplayNameValue?.ToUpper(); CreateCellItem(workbook, rowTotalFor, ref cellIndex, cellValueTotalFor, CreateFontColorAqua(workbook)); if (groupedItems.DisplayNames.DisplayNameDate != null || groupedItems.GroupByTypeId == (int)Constants.ReportsGroupByIds.Date) { rowTotalFor.CreateCell(++cellIndex).SetCellValue(string.Empty); } rowTotalFor.CreateCell(++cellIndex).SetCellValue(string.Empty); rowTotalFor.CreateCell(++cellIndex).SetCellValue(string.Empty); if (groupedItems.DisplayNames.DisplayNameTimeFrom != null) { rowTotalFor.CreateCell(++cellIndex).SetCellValue(string.Empty); } if (groupedItems.DisplayNames.DisplayNameTimeTo != null) { rowTotalFor.CreateCell(++cellIndex).SetCellValue(string.Empty); } // 1 var cellValueActTotal = ConvertModelToView.UpdateTimeFormatForValue(groupedItems.TimeTotalFor.TimeActualTotalFor.ToString()); CreateCellItem(workbook, rowTotalFor, ref cellIndex, cellValueActTotal, CreateFontBold(workbook)); // 2 if (groupedItems.DisplayNames.DisplayNameTimeEstimated != null) { var cellValueEstTotal = groupedItems.TimeTotalFor.TimeEstimatedTotalFor == 0 ? null : ConvertModelToView.UpdateTimeFormatForValue(groupedItems.TimeTotalFor.TimeEstimatedTotalFor.ToString()); CreateCellItem(workbook, rowTotalFor, ref cellIndex, cellValueEstTotal, CreateFontBold(workbook)); } if (groupedItems.DisplayNames.DisplayNameNotes != null) { rowTotalFor.CreateCell(++cellIndex).SetCellValue(string.Empty); } }
private void CreateRowOfItems(ReportTotalView reportTotalView, ReportTotalForGroupTypeView groupedItems, ReportItemsView groupedItem, ISheet sheet, XSSFWorkbook workbook) { var rowListOfValues = sheet.CreateRow(RowIndex); var cellIndex = 0; if (groupedItems.DisplayNames.DisplayNameDate != null) { var cellValue = ConvertModelToView.UpdateDateFormat(groupedItem.Date, reportTotalView.DateFormatId); CreateCellItem(workbook, rowListOfValues, ref cellIndex, cellValue, CreateDefaultFont(workbook)); } if (groupedItems.DisplayNames.DisplayNameClient != null) { CreateCellItem(workbook, rowListOfValues, ref cellIndex, groupedItem.ClientName, CreateDefaultFont(workbook)); } if (groupedItems.DisplayNames.DisplayNameProject != null) { CreateCellItem(workbook, rowListOfValues, ref cellIndex, groupedItem.ProjectName, CreateDefaultFont(workbook)); } if (groupedItems.DisplayNames.DisplayNameMember != null) { CreateCellItem(workbook, rowListOfValues, ref cellIndex, groupedItem.MemberName, CreateDefaultFont(workbook)); } CreateCellItem(workbook, rowListOfValues, ref cellIndex, groupedItem.TaskName, CreateDefaultFont(workbook)); // 1 if (groupedItems.DisplayNames.DisplayNameTimeFrom != null) { var cellValue = groupedItem.TimeValues.TimeFrom == 0 ? null : ConvertModelToView.UpdateTimeFormatForValue(groupedItem.TimeValues.TimeFrom.ToString()); CreateCellItem(workbook, rowListOfValues, ref cellIndex, cellValue, CreateDefaultFont(workbook)); } // 2 if (groupedItems.DisplayNames.DisplayNameTimeTo != null) { var cellValue = groupedItem.TimeValues.TimeTo == 0 ? null : ConvertModelToView.UpdateTimeFormatForValue(groupedItem.TimeValues.TimeTo.ToString()); CreateCellItem(workbook, rowListOfValues, ref cellIndex, cellValue, CreateDefaultFont(workbook)); } // 3 var cellActValue = ConvertModelToView.UpdateTimeFormatForValue(groupedItem.TimeValues.TimeActual.ToString()); CreateCellItem(workbook, rowListOfValues, ref cellIndex, cellActValue, CreateDefaultFont(workbook)); // 4 if (groupedItems.DisplayNames.DisplayNameTimeEstimated != null) { var cellValue = groupedItem.TimeValues.TimeEstimated == 0 ? null : ConvertModelToView.UpdateTimeFormatForValue(groupedItem.TimeValues.TimeEstimated.ToString()); CreateCellItem(workbook, rowListOfValues, ref cellIndex, cellValue, CreateDefaultFont(workbook)); } if (groupedItems.DisplayNames.DisplayNameNotes != null) { CreateCellItem(workbook, rowListOfValues, ref cellIndex, groupedItem.Notes, CreateDefaultFont(workbook)); } }
private static ReportTotalForGroupTypeView GetView <TGroupBy>(this ReportTotalForGroupTypeView reportTotalForGroupTypeView, KeyValuePair <TGroupBy, List <TimeEntry> > dictionaryOfGroupTimeEntries) { var groupByTypeId = reportTotalForGroupTypeView.GroupByTypeId; var showColumnIds = reportTotalForGroupTypeView.ShowColumnIds; var reportTimeTotalForItemsView = new ReportTotalForView(groupByTypeId, showColumnIds).GetView(dictionaryOfGroupTimeEntries.Value); switch (dictionaryOfGroupTimeEntries.Key) { case Project project: { reportTotalForGroupTypeView.GroupByType.ProjectId = project.Id; reportTotalForGroupTypeView.GroupByType.ProjectName = project.Name; reportTotalForGroupTypeView.GroupByType.GroupByTypeDisplayName = reportTotalForGroupTypeView.DisplayNames.DisplayNameProject + ": "; reportTotalForGroupTypeView.GroupByType.GroupByTypeDisplayNameValue = project.Name; //reportTimeTotalForItemsView.DisplayNames.DisplayNameProject = reportTimeTotalForItemsView.GroupByTypeId == (int)ReportsGroupBy.Project ? null : reportTimeTotalForItemsView.DisplayNames.DisplayNameProject; break; } case Member member: { reportTotalForGroupTypeView.GroupByType.MemberId = member.Id; reportTotalForGroupTypeView.GroupByType.MemberName = member.FullName; reportTotalForGroupTypeView.GroupByType.GroupByTypeDisplayName = reportTotalForGroupTypeView.DisplayNames.DisplayNameMember + ": "; reportTotalForGroupTypeView.GroupByType.GroupByTypeDisplayNameValue = member.FullName; //reportTimeTotalForItemsView.DisplayNames.DisplayNameMember = reportTimeTotalForItemsView.GroupByTypeId == (int)ReportsGroupBy.Member ? null : reportTimeTotalForItemsView.DisplayNames.DisplayNameMember; break; } case DateTime dateTime: { reportTotalForGroupTypeView.GroupByType.Date = dateTime; reportTotalForGroupTypeView.GroupByType.GroupByTypeDisplayName = reportTotalForGroupTypeView.DisplayNames.DisplayNameDate + ": "; reportTotalForGroupTypeView.GroupByType.GroupByTypeDisplayNameValue = UpdateDateFormat(dateTime, reportTotalForGroupTypeView.DateFormatId); //reportTimeTotalForItemsView.DisplayNames.DisplayNameDate = reportTimeTotalForItemsView.GroupByTypeId == (int)ReportsGroupBy.Date ? null : reportTimeTotalForItemsView.DisplayNames.DisplayNameDate; break; } case Client client: { reportTotalForGroupTypeView.GroupByType.ClientId = client.Id; reportTotalForGroupTypeView.GroupByType.ClientName = client.Name; reportTotalForGroupTypeView.GroupByType.GroupByTypeDisplayName = client.Id == WithoutClient.Id ? null : reportTotalForGroupTypeView.DisplayNames.DisplayNameClient + ": "; reportTotalForGroupTypeView.GroupByType.GroupByTypeDisplayNameValue = client.Name; //reportTimeTotalForItemsView.DisplayNames.DisplayNameClient = reportTimeTotalForItemsView.GroupByTypeId == (int)ReportsGroupBy.Client ? null : reportTimeTotalForItemsView.DisplayNames.DisplayNameClient; break; } } //reportTotalForGroupTypeView.DisplayNames = reportTimeTotalForItemsView.DisplayNames; reportTotalForGroupTypeView.TimeTotalFor = reportTimeTotalForItemsView.TimeTotalFor; reportTotalForGroupTypeView.Items = reportTimeTotalForItemsView.Items; return(reportTotalForGroupTypeView); }