public ForecastSummaryResponse GetSummary(string forecastId, string periods)
        {
            var requestData = new ForecastSummaryRequestData()
            {
                Periods    = ConvertStringIdentifiersToGuidList(periods),
                ForecastId = new Guid(forecastId)
            };
            var response = ProcessGetForecastSummary(requestData);

            return(response);
        }
        private ForecastSummaryResponse ProcessGetForecastSummary(ForecastSummaryRequestData requestData)
        {
            var response = new ForecastSummaryResponse();

            try {
                var sheet        = SheetRepository.GetSheet(requestData.ForecastId);
                var summaryCells = ForecastSummaryProvider.GetSummary(sheet, new FilterConfig {
                    PeriodIds = requestData.Periods
                });
                var record = new TreeTableDataItem {
                    ColumnValues = summaryCells.ToList()
                };
                if (UserConnection.GetIsFeatureEnabled("ForecastSummaryFormula"))
                {
                    SummaryColumnCalculator.ApplySummaryData(UserConnection, requestData.ForecastId,
                                                             new [] { record });
                }
                response.Summary = ConvertCellsToSummary(record.ColumnValues);
            } catch (Exception ex) {
                response.Exception = ex;
            }
            return(response);
        }
        public ForecastSummaryResponse GetSummaryByPostMethod(ForecastSummaryRequestData requestData)
        {
            var response = ProcessGetForecastSummary(requestData);

            return(response);
        }