public void UpdateReportDates(UserReport userReport, DateTime startDate, DateTime endDate)
        {
            userReport.StartDate = startDate;
            userReport.EndDate = endDate;

            _userReportRepository.Update(userReport);
            _unitOfWork.Commit();
        }
Пример #2
0
        public IEnumerable<Dictionary<string, object>> Execute(UserReport userReport, IEnumerable<Argument> args)
        {
            var reportResult = Execute(userReport.Report, args);
            //            var projectedResult = Project(reportResult, _outputParser.Parse(userReport.Output));

            //return projectedResult;

            return reportResult;
        }
        public void UpdateFilterToUserReport(UserReport userReport, IEnumerable<KeyValuePair<string, string>> filters)
        {
            RemoveFilter(userReport);

            var groups = filters.GroupBy(pair => pair.Key);

            UpdateFilters(userReport, groups);

            _unitOfWork.Commit();
        }
        public void UpdateUserReportOutput(UserReport userReport, string output, string outputConfiguration)
        {
            userReport.Output = output;
            userReport.OutputConfiguration = outputConfiguration;

            _userReportRepository.Update(userReport);
            _unitOfWork.Commit();
        }
        private void UpdateFilters(UserReport userReport, IEnumerable<IGrouping<string, KeyValuePair<string, string>>> groups)
        {
            foreach (var item in groups)
            {
                userReport.Filters.Add(
                    new UserReportFilter
                    {
                        ColunmName = item.Key,
                        Values = new List<UserReportFilterValue>(item.Select(x => new UserReportFilterValue {Value = x.Value}))
                    });
            }

            _userReportRepository.Update(userReport);
        }
        private void RemoveFilter(UserReport userReport)
        {
            var userFilterValueRepository = _unitOfWork.Get<UserReportFilterValue>();

            var valuesToDelete = new List<UserReportFilterValue>();

            foreach (var value in userReport.Filters.SelectMany(f => f.Values))
            {
                valuesToDelete.Add(value);
            }

            valuesToDelete.ForEach(entity=>userFilterValueRepository.Delete(entity.Id));

            var userFilterRepository = _unitOfWork.Get<UserReportFilter>();

            userReport.Filters.ToList().ForEach(entity=>userFilterRepository.Delete(entity.Id));
        }
Пример #7
0
        public IEnumerable<Dictionary<string, object>> Run(UserReport userReport, IEnumerable<Argument> args)
        {
            try
            {
                var result = _reportExecuter.Execute(userReport, args);

                return result;
            }
            catch (DataAccessException e)
            {
                throw new ReportExecuterException("See inner exception", e);
            }
        }
Пример #8
0
 private void UpdateReportStatistics(UserReport userReport, int rowCount)
 {
     userReport.ExecutionCount++;
     userReport.RowCount = rowCount;
     _unitOfWork.Commit();
 }
        private UserReportViewModel GetUserReportViewModel(UserReport userReport)
        {
            var parameters = _reportConfigurator.GetReportParameters(userReport.Report.Query);

            var userFiltersConfig = userReport.Filters.SelectMany(f => f.Values.Select(v => new KeyValuePair<string, string>(f.ColunmName, v.Value)));

            var reportLabels = userReport.Report.Labels.Select(label => new LabelViewModel {ColumnName = label.ColumnName, Label = label.Label});

            return new UserReportViewModel
            {
                UserId = userReport.User.RefId,
                ReportId = userReport.ReportId,

                DefaultOuput = userReport.Report.Output,
                Output = userReport.Output,
                Name = userReport.Report.Name,
                ParamsDefaultConfiguration = userReport.Report.ParamsDefaultConfiguration,
                Parameters = parameters.ToArray(),

                StartDate = userReport.StartDate,
                EndDate = userReport.EndDate,

                UserFilters = userReport.Report.UserFilters,
                UserFiltersConfig = userFiltersConfig,
                PredefinedFilters = userReport.Report.PredefinedFilters.Where(f => f.ReportId == userReport.Report.Id).Select(x => GetPredefinedFilterViewModel(x.Filter)).ToArray(),

                SubReport = userReport.Report.SubReports
                    .Where(r => r.FromId == userReport.Report.Id).Select(x =>
                        new SubReportConfigModel
                        {
                            SubReportId = x.ToId,
                            DependencyProperty = x.DependencyProperty,
                            IndexParamName = x.IndexParamName
                        }),

                IndexColumnName = userReport.Report.IndexColumnName,

                ParentReportIds = userReport.Report.ParentReports.Where(r => r.ToId == userReport.Report.Id).Select(x => x.FromId),
                IsStandAlone = userReport.Report.IsStandAlone,

                Labels = reportLabels,
                OutputConfiguration = userReport.OutputConfiguration,
                Category = userReport.Report.Category,
                RowCount = userReport.RowCount,
                ShouldBeShownAtDesktop = userReport.ShouldBeShownAtDesktop,
                ExecutionCount = userReport.ExecutionCount
            };
        }
Пример #10
0
        private void AddReportsToUser(User user)
        {
            var reports = _reportRepository.Get();

            foreach (var report in reports)
            {
                string output = string.IsNullOrEmpty(report.DefaultOutput) ? report.Output : report.DefaultOutput;

                UserReport userReport = new UserReport
                {
                    Output = output,
                    OutputConfiguration = GetOutputConfigurationFromOutput(output),
                    ReportId = report.Id,
                    User = user,
                };

                _userReportRepository.Add(userReport);
            }
        }