示例#1
0
        private IEnumerable <ForecastColumn> GroupEditColumns(Sheet sheet)
        {
            IEnumerable <ForecastColumn> columns = ColumnRepository.GetColumns(sheet.Id);
            var groupEditColumns = columns.Where(c =>
                                                 c.TypeId == ForecastConsts.EditableColumnTypeId && c.GetColumnSettings <EditableSettings>().IsGroupEdit);

            return(groupEditColumns);
        }
        private ColumnSetting GetForecastColumnSettings()
        {
            ForecastColumn column = ColumnRepository.GetColumns(ForecastSheet.Id)
                                    .FirstOrDefault();

            if (column == null || column.Settings.IsNullOrWhiteSpace())
            {
                return(new ColumnSetting());
            }
            return(Json.Deserialize <ColumnSetting>(column.Settings));
        }
示例#3
0
        private IEnumerable <ForecastColumn> GetColumnsToCalculate(Guid sheetId)
        {
            var useFormulaColumn   = UserConnection.GetIsFeatureEnabled("CalcTotalByFormula");
            var columnsToCalculate = ColumnRepository.GetColumns(sheetId).Where(column => {
                if (!useFormulaColumn)
                {
                    return(column.TypeId != ForecastConsts.FormulaColumnTypeId);
                }
                FormulaSetting setting = column.GetColumnSettings <FormulaSetting>();
                return(!setting.UseInSummary);
            });

            return(columnsToCalculate);
        }
 /// <inheritdoc cref="IForecastSummaryColumnCalculator.ApplySummaryData"/>
 public void ApplySummaryData(UserConnection userConnection, Guid forecastId, IEnumerable <TreeTableDataItem> records)
 {
     userConnection.CheckArgumentNull(nameof(userConnection));
     records.CheckArgumentNull(nameof(records));
     if (records.IsEmpty())
     {
         return;
     }
     _userConnection = userConnection;
     ForecastColumns = ColumnRepository.GetColumns(forecastId);
     foreach (TreeTableDataItem record in records)
     {
         var calculatedCells = CalcSummaryCells(forecastId, record);
         record.ColumnValues.AddRange(calculatedCells);
     }
 }
        /// <inheritdoc/>
        public IEnumerable <TableCell> CalcFormulaSummary(FormulaSummaryParams parameters)
        {
            parameters.CheckArgumentNull(nameof(parameters));
            Guid forecastId = parameters.ForecastId;

            ForecastColumns = ColumnRepository.GetColumns(forecastId);
            var cells = new List <TableCell>(parameters.Cells);

            cells = FilterTableCells(cells);
            SetupPeriods(cells);
            var resultCells = new List <TableCell>();
            var records     = cells.Select(cell => cell.RecordId).Distinct().ToImmutableArray();

            records.ForEach((recordId) => {
                var filteredCells = cells.Where(cell => cell.RecordId == recordId);
                resultCells.AddRange(InnerCalculate(filteredCells, recordId));
            });
            return(resultCells);
        }
        private IEnumerable <ColumnInfo> GetColumnInfos(Guid forecastId, IEnumerable <Period> periods)
        {
            IEnumerable <ForecastColumn> forecastColumns = ColumnRepository.GetColumns(forecastId);

            return(FillColumns(forecastColumns, periods));
        }
示例#7
0
 public async Task <ActionResult <List <ClientColumn> > > GetColumns()
 {
     return(await cr.GetColumns(HttpContext.Items["UserID"].ToString()));
 }