public async Task <IActionResult> Run(ReportCriteriaViewModel viewModel) { PageTitle = "Run the report"; var criterion = new ReportCriterion { SiteId = GetCurrentSiteId(), EndDate = viewModel.EndDate, StartDate = viewModel.StartDate, SystemId = viewModel.SystemId, BranchId = viewModel.BranchId, ProgramId = viewModel.ProgramId, SchoolDistrictId = viewModel.SchoolDistrictId, SchoolId = viewModel.SchoolId, GroupInfoId = viewModel.GroupInfoId, VendorCodeTypeId = viewModel.VendorCodeTypeId, BadgeRequiredList = viewModel.BadgeRequiredList, ChallengeRequiredList = viewModel.ChallengeRequiredList }; var reportRequestId = await _reportService .RequestReport(criterion, viewModel.ReportId); var wsUrl = await _siteService.GetWsUrl(Request.Scheme, Request.Host.Value); return(View("Run", new RunReportViewModel { Id = reportRequestId, RunReportUrl = $"{wsUrl}/MissionControl/runreport/{reportRequestId}" })); }
public async Task GetCampaignReport_ShouldReturnReport() { // Arrange var scopeId = Guid.NewGuid(); var advertiser = new Advertiser { AdvertiserUuid = scopeId }; var model = new ReportCriteriaViewModel { ReportLevel = ReportLevelEnum.Daily, ReportScope = ReportScopeEnum.Advertiser, ReportScopeId = scopeId }; var report = new Report <object>(new List <PerformanceData <object> > { new PerformanceData <object>() }); MockUnitOfWorkRepository <Advertiser>().Setup(x => x.Queryable()) .Returns(new[] { advertiser }.AsQueryable()); Mock.Mock <IReportService>().Setup(x => x.GetCampaignReport(It.Is((ReportCriteria criteria) => criteria.Level == model.ReportLevel && criteria.Advertiser == advertiser))) .Returns(Task.FromResult((IReport)report)); // Act var result = await Controller.GetCampaignReport(model); // Assert Assert.That(result, Is.Not.Null); Assert.That(result.TotalItemCount, Is.EqualTo(1)); Assert.That(result.Data.First(), Is.EqualTo(report.Data.First())); }
public async Task <ReportViewModel> GetStrategyReport([FromUri] ReportCriteriaViewModel reportCriteriaViewModel) { var reportCriteria = _mapping.Map <ReportCriteria>(reportCriteriaViewModel); reportCriteria.Type = ReportTypeEnum.Strategy; var report = await _reportService.GetStrategyReport(reportCriteria).ConfigureAwait(false); return(_mapping.Map <ReportViewModel>(report, reportCriteriaViewModel)); }
public async Task <IActionResult> Run(ReportCriteriaViewModel viewModel) { PageTitle = "Run the report"; var siteId = GetCurrentSiteId(); var criterion = new ReportCriterion { SiteId = siteId, EndDate = viewModel.EndDate, StartDate = viewModel.StartDate, SystemId = viewModel.SystemId, BranchId = viewModel.BranchId, ProgramId = viewModel.ProgramId, SchoolDistrictId = viewModel.SchoolDistrictId, SchoolId = viewModel.SchoolId, GroupInfoId = viewModel.GroupInfoId, VendorCodeTypeId = viewModel.VendorCodeTypeId, BadgeRequiredList = viewModel.BadgeRequiredList, ChallengeRequiredList = viewModel.ChallengeRequiredList }; if (viewModel.TriggerList?.Count > 0) { criterion.TriggerList = string.Join(",", viewModel.TriggerList); } var(IsSet, SetValue) = await _siteLookupService.GetSiteSettingIntAsync(siteId, SiteSettingKey.Users.MaximumActivityPermitted); if (IsSet) { criterion.MaximumAllowableActivity = SetValue; } int reportRequestId = await _reportService .RequestReport(criterion, viewModel.ReportId); var jobToken = await _jobService.CreateJobAsync(new Job { JobType = JobType.RunReport, SerializedParameters = JsonConvert.SerializeObject(new JobDetailsRunReport { ReportRequestId = reportRequestId }) }); return(View("Job", new ViewModel.MissionControl.Shared.JobViewModel { CancelUrl = Url.Action(nameof(Index)), JobToken = jobToken.ToString(), PingSeconds = 2, SuccessRedirectUrl = Url.Action(nameof(View), new { id = reportRequestId }), SuccessUrl = "", Title = "Loading report..." })); }
public async Task GetAdvertiserReport_ShouldReturnReport() { // Arrange var scopeId = Guid.NewGuid(); var advertiser = new Advertiser { AdvertiserUuid = scopeId }; var model = new ReportCriteriaViewModel { ReportLevel = ReportLevelEnum.Daily, ReportScope = ReportScopeEnum.Advertiser, ReportScopeId = scopeId, StartDate = DateTime.Now }; var report = new Report <object>(new List <PerformanceData <object> > { new PerformanceData <object>(), new PerformanceData <object>() }); MockUnitOfWorkRepository <Advertiser>().Setup(x => x.Queryable()) .Returns(new[] { advertiser }.AsQueryable()); Mock.Mock <IReportService>().Setup(x => x.GetAdvertiserReport(It.Is((ReportCriteria criteria) => criteria.Level == model.ReportLevel && criteria.Advertiser == advertiser && criteria.LocalFromDateTime == model.StartDate && !criteria.LocalToDateTime.HasValue))) .Returns(Task.FromResult((IReport)report)); // Act var result = await Controller.GetAdvertiserReport(model); // Assert Assert.That(result, Is.Not.Null); Assert.That(result.TotalItemCount, Is.EqualTo(2)); var resultData = result.Data.ToList(); var expectedData = report.Data.ToList(); Assert.That(resultData[0], Is.EqualTo(expectedData[0])); Assert.That(resultData[1], Is.EqualTo(expectedData[1])); }