private void ShowReportItemModule()
        {
            var view = new ReportItemsView {
                Owner = this
            };

            view.ShowDialog();
        }
        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 ReportItemsView MapTimeEntryToReportGridItemsView(TimeEntry timeEntry, ReportItemsView reportItemsView)
        {
            reportItemsView.ClientId  = timeEntry.Project.Client == null ? WithoutClient.Id : timeEntry.Project.Client.Id;
            reportItemsView.ProjectId = timeEntry.Project.Id;
            reportItemsView.MemberId  = timeEntry.Member.Id;
            reportItemsView.TaskId    = timeEntry.TaskType.Id;
            reportItemsView.TaskName  = timeEntry.TaskType.Name;

            reportItemsView.ClientName = reportItemsView.GroupByTypeId == (int)ReportsGroupByIds.Client
                ? null
                : timeEntry.Project.Client == null ? WithoutClient.Name : timeEntry.Project.Client.Name;
            reportItemsView.ProjectName = reportItemsView.GroupByTypeId == (int)ReportsGroupByIds.Project ? null : timeEntry.Project.Name;
            reportItemsView.MemberName  = reportItemsView.GroupByTypeId == (int)ReportsGroupByIds.User ? null : timeEntry.Member.FullName;
            reportItemsView.Date        = reportItemsView.GroupByTypeId == (int)ReportsGroupByIds.Date
                ? null
                : reportItemsView.ShowColumnIds.Contains((int)ShowColumnModelIds.ShowDate)
                    ? (DateTime?)timeEntry.Date
                    : null;

            reportItemsView.Notes      = reportItemsView.ShowColumnIds.Contains((int)ShowColumnModelIds.ShowNotes) ? timeEntry.Description ?? string.Empty : null;
            reportItemsView.TimeValues = new TimeValuesView
            {
                TimeFrom      = reportItemsView.ShowColumnIds.Contains((int)ShowColumnModelIds.ShowStartFinish) ? (int?)timeEntry.TimeFrom : null,
                TimeTo        = reportItemsView.ShowColumnIds.Contains((int)ShowColumnModelIds.ShowStartFinish) ? (int?)timeEntry.TimeTo : null,
                TimeActual    = timeEntry.TimeActual,
                TimeEstimated = reportItemsView.ShowColumnIds.Contains((int)ShowColumnModelIds.ShowEstimatedTime) ? (int?)timeEntry.TimeEstimated : null
            };

            return(reportItemsView);
        }