Ejemplo n.º 1
0
        /// <summary> Gets the given request. </summary>
        /// <param name="request"> The request. </param>
        /// <returns> A Task&lt;object&gt; </returns>
        public async Task <object> Get(GetReportHeaders request)
        {
            if (string.IsNullOrEmpty(request.IncludeItemTypes))
            {
                return(null);
            }

            request.DisplayType = "Screen";
            ReportViewType reportViewType = ReportHelper.GetReportViewType(request.ReportView);

            List <ReportHeader> result = new List <ReportHeader>();

            switch (reportViewType)
            {
            case ReportViewType.ReportData:
                ReportBuilder dataBuilder = new ReportBuilder(_libraryManager);
                result = dataBuilder.GetHeaders(request);
                break;

            case ReportViewType.ReportStatistics:
                break;

            case ReportViewType.ReportActivities:
                ReportActivitiesBuilder activityBuilder = new ReportActivitiesBuilder(_libraryManager, _userManager);
                result = activityBuilder.GetHeaders(request);
                break;
            }

            return(ToOptimizedResult(result));
        }
Ejemplo n.º 2
0
        /// <summary> Gets report activities. </summary>
        /// <param name="request"> The request. </param>
        /// <returns> The report activities. </returns>
        private Task <ReportResult> GetReportActivities(IReportsDownload request)
        {
            return(Task <ReportResult> .Run(() =>
            {
                DateTime?minDate = string.IsNullOrWhiteSpace(request.MinDate) ?
                                   (DateTime?)null :
                                   DateTime.Parse(request.MinDate, null, DateTimeStyles.RoundtripKind).ToUniversalTime();

                QueryResult <ActivityLogEntry> queryResult;
                if (request.HasQueryLimit)
                {
                    queryResult = _repo.GetActivityLogEntries(minDate, request.StartIndex, request.Limit);
                }
                else
                {
                    queryResult = _repo.GetActivityLogEntries(minDate, request.StartIndex, null);
                }
                //var queryResult = _activityManager.GetActivityLogEntries(minDate, request.StartIndex, request.Limit);

                ReportActivitiesBuilder builder = new ReportActivitiesBuilder(_libraryManager, _userManager);
                var result = builder.GetResult(queryResult, request);
                result.TotalRecordCount = queryResult.TotalRecordCount;
                return result;
            }));
        }