示例#1
0
        public async Task <IActionResult> TotalIssueReport([FromBody] TotalIssueFormModel form)
        {
            var result =
                await _reportService.TotalIssueReportAsync(HttpContext.GetUser(), form);

            return(Ok(GetRequestResult(result)));
        }
示例#2
0
        public async Task <List <TotalIssueViewModel> > TotalIssueReportAsync(User user, TotalIssueFormModel form)
        {
            try
            {
                var queryable = _context.Issues.Include(c => c.User).Include(c => c.IssueDetails).Where(c => c.IssueType == form.IssueType).AsQueryable();

                if (form.StartTime.HasValue)
                {
                    queryable = queryable.Where(c => c.CreationDate >= form.StartTime);
                }
                if (form.EndTime.HasValue)
                {
                    queryable = queryable.Where(c => c.CreationDate <= form.EndTime);
                }
                var resp = await queryable.ToListAsync();

                var totalIssueViewModels = new List <TotalIssueViewModel>();
                resp?.ForEach(c =>
                {
                    var totalIssueViewModel = new TotalIssueViewModel()
                    {
                        CreationTime      = c.CreationDate.ToShortPersianDateTimeString(),
                        FullName          = c.User.FirstName + " " + c.User.LastName,
                        IssueType         = EnumHelper <IssueType> .GetDisplayValue(c.IssueType),
                        LikesCount        = c.IssueDetails.Sum(d => d.Likes),
                        Title             = c.Title,
                        TotalIssueDetails = c.IssueDetails.Count(),
                        UserName          = c.User.Username,
                    };
                    totalIssueViewModels.Add(totalIssueViewModel);
                });

                return(totalIssueViewModels);
            }
            catch (Exception ex)
            {
                throw new ExperienceManagementGlobalException(ReportServiceErrors.TotalIssueReportError, ex);
            }
        }