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 CreateRowOfTotal(ReportTotalView reportTotalView, ISheet sheet, XSSFWorkbook workbook)
        {
            var rowTotal  = sheet.CreateRow(RowIndex);
            var cellIndex = 0;

            var cellValueTotal = reportTotalView.TimeTotal.DisplayNameTimeActualTotal.ToUpper();

            CreateCellItem(workbook, rowTotal, ref cellIndex, cellValueTotal, CreateFontColorAqua(workbook));

            if (reportTotalView.DisplayNames.DisplayNameDate != null || reportTotalView.GroupByTypeId == (int)Constants.ReportsGroupByIds.Date)
            {
                rowTotal.CreateCell(++cellIndex).SetCellValue(string.Empty);
            }

            rowTotal.CreateCell(++cellIndex).SetCellValue(string.Empty);
            rowTotal.CreateCell(++cellIndex).SetCellValue(string.Empty);
            if (reportTotalView.DisplayNames.DisplayNameTimeFrom != null)
            {
                rowTotal.CreateCell(++cellIndex).SetCellValue(string.Empty);
            }

            if (reportTotalView.DisplayNames.DisplayNameTimeTo != null)
            {
                rowTotal.CreateCell(++cellIndex).SetCellValue(string.Empty);
            }

            // 1
            var cellValueActTotal = ConvertModelToView.UpdateTimeFormatForValue(reportTotalView.TimeTotal.TimeActualTotal.ToString());

            CreateCellItem(workbook, rowTotal, ref cellIndex, cellValueActTotal, CreateFontBold(workbook));

            // 2
            if (reportTotalView.DisplayNames.DisplayNameTimeEstimated != null)
            {
                var cellValueEstTotal = reportTotalView.TimeTotal.TimeEstimatedTotal == 0
                    ? null
                    : ConvertModelToView.UpdateTimeFormatForValue(reportTotalView.TimeTotal.TimeEstimatedTotal.ToString());

                CreateCellItem(workbook, rowTotal, ref cellIndex, cellValueEstTotal, CreateFontBold(workbook));
            }

            if (reportTotalView.DisplayNames.DisplayNameNotes != null)
            {
                rowTotal.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));
            }
        }