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)); }
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)); }
public async Task <ActionResult <List <ClientColumn> > > GetColumns() { return(await cr.GetColumns(HttpContext.Items["UserID"].ToString())); }