public ReportResponse CreateReport(String reportName) { var request = new ReportRequest { ReportName = reportName, Parameters = Request.GetQueryNameValuePairs().ToDictionary(n=>n.Key, v=>v.Value) }; return ReportQuery.Handle(ActionContext, request); }
/// <summary> /// 受托长辈适应程度评估表 /// </summary> /// <param name="doc"></param> /// <param name="request"></param> private void RegQuestionEvalOperation(WordDocument doc, ReportRequest request) { var org = organizationManageService.GetOrg(SecurityHelper.CurrentPrincipal.OrgId); var eval = reportManageService.GetRegQuestionEvalRec(request.id, 1); var basic = reportManageService.GetBasicInfoById(Convert.ToInt32(eval.Data[0].FEENO)); doc.ReplaceText("Org", org.Data.OrgName); doc.ReplaceText("ResidentNo", basic.Data.ResidentNo == null?"":basic.Data.ResidentNo); doc.ReplaceText("Name", basic.Data.RegName); doc.ReplaceText("Sex", basic.Data.Sex); doc.ReplaceText("Age", (DateTime.Now.Year - Convert.ToDateTime(basic.Data.BirthDate).Year).ToString()); doc.ReplaceText("InDate", Convert.ToDateTime(basic.Data.InDate).ToShortDateString()); doc.ReplaceText("EvalResult", eval.Data[0].EVALRESULT); doc.ReplaceText("Score", eval.Data[0].SCORE.ToString());// if (eval.Data != null && eval.Data.Count > 0) { DataTable dt1 = BuildTable(reportManageService.GetRegQuestionEvalRec(request.id, 1), 1); doc.FillTable(0, dt1, "", "", 0); dt1.Dispose(); DataTable dt2 = BuildTable(reportManageService.GetRegQuestionEvalRec(request.id, 2), 2); doc.FillTable(1, dt2, "", "", 0); dt2.Dispose(); var eval3 = reportManageService.GetRegQuestionEvalRec(request.id, 3); if (eval3 != null) { foreach (var item in eval3.Data) { if (item.ITEMNAME.Trim() == "护理人员") { doc.ReplaceText("ItemValue1", item.ITEMVALUE == null ? "0" : item.ITEMVALUE.ToString()); } if (item.ITEMNAME.Trim() == "社工人员") { doc.ReplaceText("ItemValue2", item.ITEMVALUE == null ? "0" : item.ITEMVALUE.ToString()); } if (item.ITEMNAME.Trim() == "照服员") { doc.ReplaceText("ItemValue3", item.ITEMVALUE == null ? "0" : item.ITEMVALUE.ToString()); } if (item.ITEMNAME.Trim() == "志工") { doc.ReplaceText("ItemValue4", item.ITEMVALUE == null ? "0" : item.ITEMVALUE.ToString()); } if (item.ITEMNAME.Trim() == "其他受托长辈") { doc.ReplaceText("ItemValue5", item.ITEMVALUE == null ? "0" : item.ITEMVALUE.ToString()); } } } DataTable dt4 = BuildTable(reportManageService.GetRegQuestionEvalRec(request.id, 4), 4); doc.FillTable(3, dt4, "", "", 0); dt4.Dispose(); DataTable dt5 = BuildTable(reportManageService.GetRegQuestionEvalRec(request.id, 5), 5); doc.FillTable(4, dt5, "", "", 0); dt5.Dispose(); } //if (question == null) return; //BindData(question.Data, doc); }
public async Task <IActionResult> AddAsync(ReportRequest reportRequest) { await _reportRequestRepository.AddAsync(reportRequest); return(Ok()); }
public override async Task ExecuteAsync(ReportRequest request, CancellationToken token, IProgress <JobStatus> progress = null) { #region Reporting initialization request = await StartRequestAsync(request); var criterion = await _serviceFacade.ReportCriterionRepository.GetByIdAsync(request.ReportCriteriaId) ?? throw new GraException($"Report criteria {request.ReportCriteriaId} for report request id {request.Id} could not be found."); if (criterion.SiteId == null) { throw new ArgumentException(nameof(criterion.SiteId)); } string title = ""; if (criterion.SystemId.HasValue) { title = (await _systemRepository.GetByIdAsync(criterion.SystemId.Value)).Name; } var report = new StoredReport { Title = title, AsOf = _serviceFacade.DateTimeProvider.Now }; var reportData = new List <object[]>(); var askIfFirstTime = await GetSiteSettingBoolAsync(criterion, SiteSettingKey.Users.AskIfFirstTime); var reportEmailAwardData = await _vendorCodeTypeRepository.SiteHasEmailAwards(criterion.SiteId.Value); #endregion Reporting initialization #region Collect data UpdateProgress(progress, 1, "Starting report...", request.Name); // header row var headerRow = new List <object> { "System Name", "Branch Name" }; // first time? if (askIfFirstTime) { headerRow.Add("First Time # Earned"); headerRow.Add("First Time # Ordered"); if (reportEmailAwardData) { headerRow.Add("First Time # Email Awarded"); } } headerRow.Add("# Earned"); headerRow.Add("# Ordered"); if (reportEmailAwardData) { headerRow.Add("# Email Awarded"); } report.HeaderRow = headerRow.ToArray(); int count = 0; // running totals int totalEarned = 0; int totalOrdered = 0; int totalEmailAwarded = 0; int totalFirstEarned = 0; int totalFirstOrdered = 0; int totalFirstEmailAwarded = 0; var branches = criterion.SystemId != null ? await _branchRepository.GetBySystemAsync((int)criterion.SystemId) : await _branchRepository.GetAllAsync((int)criterion.SiteId); var systemIds = branches .OrderBy(_ => _.SystemName) .GroupBy(_ => _.SystemId) .Select(_ => _.First().SystemId); foreach (var systemId in systemIds) { if (token.IsCancellationRequested) { break; } foreach (var branch in branches.Where(_ => _.SystemId == systemId)) { UpdateProgress(progress, ++count * 100 / branches.Count(), $"Processing: {branch.SystemName} - {branch.Name}", request.Name); criterion.SystemId = systemId; criterion.BranchId = branch.Id; var row = new List <object> { branch.SystemName, branch.Name, }; if (askIfFirstTime) { criterion.IsFirstTimeParticipant = true; var firstVendorCodes = await _vendorCodeRepository.GetEarnedCodesAsync(criterion); int firstEarnedCodes = firstVendorCodes.Count; int firstUsedCodes = firstVendorCodes.Count(_ => _.IsUsed); criterion.IsFirstTimeParticipant = false; row.Add(firstEarnedCodes); row.Add(firstUsedCodes); totalFirstEarned += firstEarnedCodes; totalFirstOrdered += firstUsedCodes; if (reportEmailAwardData) { int firstEmailAwardCodes = firstVendorCodes .Count(_ => _.EmailAwardSent.HasValue); row.Add(firstEmailAwardCodes); totalFirstEmailAwarded += firstEmailAwardCodes; } } var vendorCodes = await _vendorCodeRepository.GetEarnedCodesAsync(criterion); int earnedCodes = vendorCodes.Count; int usedCodes = vendorCodes.Count(_ => _.IsUsed); totalEarned += earnedCodes; totalOrdered += usedCodes; row.Add(earnedCodes); row.Add(usedCodes); if (reportEmailAwardData) { int emailAwardCodes = vendorCodes .Count(_ => _.EmailAwardSent.HasValue); totalEmailAwarded += emailAwardCodes; row.Add(emailAwardCodes); } reportData.Add(row.ToArray()); if (token.IsCancellationRequested) { break; } } } report.Data = reportData.ToArray(); // total row var footerRow = new List <object> { "Total", string.Empty }; if (askIfFirstTime) { footerRow.Add(totalFirstEarned); footerRow.Add(totalFirstOrdered); if (reportEmailAwardData) { footerRow.Add(totalFirstEmailAwarded); } } footerRow.Add(totalEarned); footerRow.Add(totalOrdered); if (reportEmailAwardData) { footerRow.Add(totalEmailAwarded); } report.FooterRow = footerRow.ToArray(); #endregion Collect data #region Finish up reporting if (!token.IsCancellationRequested) { ReportSet.Reports.Add(report); } await FinishRequestAsync(request, !token.IsCancellationRequested); #endregion Finish up reporting }
public async Task <FileResult> Operations(ReportRequest reportRequest) { byte[] bytes = await this.reportService.GenerateOperationsReportAsync(reportRequest); return(File(bytes, MediaTypeNames.Text.Xml, "Operations - Reprot.xml")); }
public async Task<ActionResult> CreateReport(string sdatemonth, string sdateday, string sdateyear, string edatemonth, string edateday, string edateyear, string period, string detailed, string [] subslist) { try { dm.startDateMonth = Convert.ToInt32(sdatemonth); dm.startDateDay = Convert.ToInt32(sdateday); dm.startDateYear = Convert.ToInt32(sdateyear); dm.endDateMonth = Convert.ToInt32(edatemonth); dm.endDateDay = Convert.ToInt32(edateday); dm.endDateYear = Convert.ToInt32(edateyear); dm.detailedReport = (detailed == "d" ? true : false); dm.dailyReport = (period == "d" ? true : false); if (subslist != null) dm.selectedUserSubscriptions = subslist.ToList(); if (dm.selectedUserSubscriptions.Count() < 1) throw new Exception("No Azure subscription is selected. Select from list and try again (may use CTRL for multiple selection)."); DateTime s, e; try { s = new DateTime(dm.startDateYear, dm.startDateMonth, dm.startDateDay); e = new DateTime(dm.endDateYear, dm.endDateMonth, dm.endDateDay); } catch { throw new Exception("Invalid date input."); } TimeSpan ts = e.Subtract(s); if (ts.TotalDays > 150) throw new Exception("Time interval can not be greater than 150 (5 month) days"); if (ts.TotalDays < 1) throw new Exception("Start date can not be later than or equal to the end date."); // now we have all parameters set. Ready to create jobs and send them to Storage queue to be processed by webjob ReportRequest rr = new ReportRequest(); rr.reportDate = DateTime.UtcNow; rr.startDate = s; rr.endDate = e; rr.detailedReport = dm.detailedReport; rr.dailyReport = dm.dailyReport; foreach (string sid in dm.selectedUserSubscriptions) { Subscription subs = dm.userSubscriptionsList[sid]; if (subs == null) continue; Report rjd = new Report(); rjd.subscriptionID = subs.Id; rjd.organizationID = subs.OrganizationId; rr.repReqs.Add(rjd); } db.ReportRequests.Add(rr); db.SaveChanges(); var queueMessage = new CloudQueueMessage(JsonConvert.SerializeObject(rr)); await reportRequestsQueue.AddMessageAsync(queueMessage); } catch (Exception e) { //dm.Reset(); return RedirectToAction("Error", "Home", new { msg = e.Message } ); } return RedirectToAction("Index", "Dashboard"); }
public ActionResult PreviewLTC_NursingReport() { string templateName = Request["templateName"]; string feeNo = Request["feeNo"]; string id = Request["id"]; ReportRequest request = new ReportRequest(); if (templateName != null) { switch (templateName) { case "ADLReport": if (!string.IsNullOrEmpty(id)) { request.id = int.Parse(id); request.type = "ADLReport"; this.GeneratePDF("ADLReport", this.Operation, request); } break; case "MMSEReport": if (!string.IsNullOrEmpty(id)) { request.id = int.Parse(id); request.type = "MMSEReport"; this.GeneratePDF("MMSEReport", this.Operation, request); } break; case "SPMSQReport": if (!string.IsNullOrEmpty(id)) { request.id = int.Parse(id); request.type = "SPMSQReport"; this.GeneratePDF("SPMSQReport", this.Operation, request); } break; case "IADLReport": if (!string.IsNullOrEmpty(id)) { request.id = int.Parse(id); request.type = "IADLReport"; this.GeneratePDF("IADLReport", this.Operation, request); } break; case "ColeScaleReport": if (!string.IsNullOrEmpty(id)) { request.id = int.Parse(id); request.type = "ColeScaleReport"; this.GeneratePDF("ColeScaleReport", this.Operation, request); } break; case "PrsSoreReport": if (!string.IsNullOrEmpty(id)) { request.id = int.Parse(id); request.type = "PrsSoreReport"; this.GeneratePDF("PrsSoreReport", this.Operation, request); } break; } } return(View("Preview")); }
/// <summary> /// Submits a download request to the Bing Ads reporting service with the specified parameters. /// </summary> /// <param name="request">Determines various download parameters, for example what entities to download. </param> /// <returns>A task that represents the asynchronous operation. The task result will be the submitted download operation.</returns> /// <exception cref="FaultException{TDetail}">Thrown if a fault is returned from the Bing Ads service.</exception> /// <exception cref="OAuthTokenRequestException">Thrown if tokens can't be refreshed due to an error received from the Microsoft Account authorization server.</exception> public Task<ReportingDownloadOperation> SubmitDownloadAsync(ReportRequest request) { return SubmitDownloadAsyncImpl(request); }
public void Update(string id, ReportRequest pIn) => _report.ReplaceOne(p => p.UUID == id, pIn);
public ReportRequest Create(ReportRequest report) { _report.InsertOne(report); return(report); }
public async Task <OperationStatus> RunReport(string reportRequestIdString, CancellationToken token, IProgress <OperationStatus> progress = null) { if (HasPermission(Permission.ViewAllReporting)) { BaseReport report = null; ReportRequest _request = null; int reportRequestId = 0; if (!int.TryParse(reportRequestIdString, out reportRequestId)) { _logger.LogError($"Couldn't covert report request id {reportRequestIdString} to a number."); return(new OperationStatus { PercentComplete = 100, Status = $"Could not find report request {reportRequestIdString}.", Error = true, Complete = false }); } token.Register(() => { string duration = ""; if (report != null && report.Elapsed != null) { duration = $" after {((TimeSpan)report.Elapsed).TotalSeconds.ToString("N2")} seconds"; } if (_request != null) { _logger.LogWarning($"Report {reportRequestId} for user {_request.CreatedBy} was cancelled{duration}."); } else { _logger.LogWarning($"Report {reportRequestId} was cancelled{duration}."); } }); try { _request = await _reportRequestRepository.GetByIdAsync(reportRequestId) ?? throw new GraException($"Cannot find report request id {reportRequestId}"); } catch (Exception ex) { _logger.LogError($"Could not find report request {reportRequestId}: {ex.Message}"); return(new OperationStatus { PercentComplete = 0, Status = "Could not find the report request.", Error = true }); } var reportDetails = new Catalog().Get() .Where(_ => _.Id == _request.ReportId) .SingleOrDefault(); if (reportDetails == null) { _logger.LogError($"Cannot find report id {_request.ReportId} requested by request {reportRequestId}"); return(new OperationStatus { PercentComplete = 0, Status = "Could not find the requested report.", Error = true }); } try { report = _serviceProvider.GetService(reportDetails.ReportType) as BaseReport; } catch (Exception ex) { _logger.LogCritical($"Couldn't instantiate report: {ex.Message}"); return(new OperationStatus { PercentComplete = 100, Status = "Unable to run report.", Error = true }); } try { await report.ExecuteAsync(_request, token, progress); } catch (Exception ex) { return(new OperationStatus { PercentComplete = 100, Status = $"A software error occurred: {ex.Message}.", Error = true }); } if (!token.IsCancellationRequested) { return(new OperationStatus { PercentComplete = 100, Status = "Report processing complete.", }); } else { return(new OperationStatus { PercentComplete = 100, }); } } else { var requestingUser = GetClaimId(ClaimType.UserId); _logger.LogError($"User {requestingUser} doesn't have permission to view all reporting."); return(new OperationStatus { PercentComplete = 0, Status = "Permission denied.", Error = true }); } }
public override async Task ExecuteAsync(ReportRequest request, CancellationToken token, IProgress <OperationStatus> progress = null) { #region Reporting initialization if (request == null) { throw new ArgumentNullException(nameof(request)); } request = await StartRequestAsync(request); var criterion = await _serviceFacade.ReportCriterionRepository.GetByIdAsync(request.ReportCriteriaId) ?? throw new GraException($"Report criteria {request.ReportCriteriaId} for report request id {request.Id} could not be found."); if (criterion.SiteId == null) { throw new ArgumentNullException(nameof(criterion.SiteId)); } var report = new StoredReport { Title = ReportAttribute?.Name, AsOf = _serviceFacade.DateTimeProvider.Now }; var reportData = new List <object[]>(); var askIfFirstTime = await GetSiteSettingBoolAsync(criterion, SiteSettingKey.Users.AskIfFirstTime); #endregion Reporting initialization #region Collect data UpdateProgress(progress, 1, "Starting report...", request.Name); // header row var headerRow = new List <object>() { "School Name", "School Type", "Registered Users" }; if (askIfFirstTime) { headerRow.Add("First time Participants"); } headerRow.Add("Achievers"); report.HeaderRow = headerRow.ToArray(); int count = 0; // running totals long totalRegistered = 0; long totalFirstTime = 0; long totalAchiever = 0; ICollection <School> schools = null; if (criterion.SchoolId != null) { schools = new List <School>() { await _schoolRepository.GetByIdAsync((int)criterion.SchoolId) }; } else if (criterion.SchoolDistrictId != null) { schools = await _schoolRepository.GetAllAsync((int)criterion.SiteId, criterion.SchoolDistrictId); } if (schools == null) { throw new Exception("Could not find any school(s) to report on."); } foreach (var school in schools) { if (token.IsCancellationRequested) { break; } UpdateProgress(progress, ++count * 100 / schools.Count(), $"Processing: {school.Name}", request.Name); criterion.SchoolDistrictId = null; criterion.SchoolId = school.Id; int users = await _userRepository.GetCountAsync(criterion); int achievers = await _userRepository.GetAchieverCountAsync(criterion); totalRegistered += users; totalAchiever += achievers; string schoolTypeName = null; if (school.SchoolTypeId.HasValue) { var schoolType = await _schoolTypeRepository .GetByIdAsync(school.SchoolTypeId.Value); schoolTypeName = schoolType.Name; } var row = new List <object>() { school.Name, schoolTypeName, users }; if (askIfFirstTime) { int firstTime = await _userRepository.GetFirstTimeCountAsync(criterion); totalFirstTime += firstTime; row.Add(firstTime); } row.Add(achievers); reportData.Add(row.ToArray()); } report.Data = reportData.ToArray(); // total row var footerRow = new List <object>() { "Total", string.Empty, totalRegistered }; if (askIfFirstTime) { footerRow.Add(totalFirstTime); } footerRow.Add(totalAchiever); report.FooterRow = footerRow.ToArray(); #endregion Collect data #region Finish up reporting _logger.LogInformation($"Report {GetType().Name} with criterion {criterion.Id} ran in {StopTimer()}"); request.Success = !token.IsCancellationRequested; if (request.Success == true) { ReportSet.Reports.Add(report); request.Finished = _serviceFacade.DateTimeProvider.Now; request.ResultJson = Newtonsoft.Json.JsonConvert.SerializeObject(ReportSet); } await _serviceFacade.ReportRequestRepository.UpdateSaveNoAuditAsync(request); #endregion Finish up reporting }
public async override Task ExecuteAsync(ReportRequest request, CancellationToken token, IProgress <OperationStatus> progress = null) { #region Reporting initialization if (request == null) { throw new ArgumentNullException(nameof(request)); } request = await StartRequestAsync(request); var criterion = await GetCriterionAsync(request); var report = new StoredReport { Title = ReportAttribute?.Name, AsOf = _serviceFacade.DateTimeProvider.Now }; var reportData = new List <object[]>(); #endregion Reporting initialization #region Collect data UpdateProgress(progress, 1, "Starting report...", request.Name); // header row var headerRow = new List <object>() { "System Name", "Branch Name", "Program Name", "Registered Users", }; var translations = new Dictionary <string, ICollection <int?> >(); var translationTotals = new Dictionary <string, long>(); var programDictionary = (await _programRepository.GetAllAsync((int)criterion.SiteId)) .ToDictionary(_ => _.Id, _ => _.Name); foreach (var programId in programDictionary.Keys) { var pointTranslation = await _pointTranslationRepository .GetByProgramIdAsync(programId); string description = pointTranslation.ActivityDescriptionPlural; if (!translations.ContainsKey(description)) { translations.Add(description, new List <int?> { pointTranslation.Id }); translationTotals.Add(description, 0); if (description.Length > 2) { headerRow.Add(description.First().ToString().ToUpper() + description.Substring(1)); } else { headerRow.Add(description); } } else { translations[description].Add(pointTranslation.Id); } } report.HeaderRow = headerRow.ToArray(); int count = 0; // running totals long totalRegistered = 0; var branches = criterion.SystemId != null ? await _branchRepository.GetBySystemAsync((int)criterion.SystemId) : await _branchRepository.GetAllAsync((int)criterion.SiteId); var systemIds = branches .OrderBy(_ => _.SystemName) .GroupBy(_ => _.SystemId) .Select(_ => _.First().SystemId); int totalItems = branches.Count() * programDictionary.Count(); foreach (var systemId in systemIds) { if (token.IsCancellationRequested) { break; } foreach (var branch in branches.Where(_ => _.SystemId == systemId)) { if (token.IsCancellationRequested) { break; } foreach (var programId in programDictionary.Keys) { UpdateProgress(progress, ++count * 100 / totalItems, $"Processing: {branch.SystemName} - {branch.Name}", request.Name); criterion.SystemId = systemId; criterion.BranchId = branch.Id; criterion.ProgramId = programId; int users = await _userRepository.GetCountAsync(criterion); totalRegistered += users; var row = new List <object>() { branch.SystemName, branch.Name, programDictionary[programId], users }; foreach (var translationName in translations.Keys) { long total = await _userLogRepository.TranslationEarningsAsync(criterion, translations[translationName]); row.Add(total); translationTotals[translationName] += total; } reportData.Add(row.ToArray()); if (token.IsCancellationRequested) { break; } } } } report.Data = reportData.ToArray(); // total row var footerRow = new List <object>() { "Total", string.Empty, string.Empty, totalRegistered, }; foreach (var total in translationTotals.Values) { footerRow.Add(total); } report.FooterRow = footerRow.ToArray(); #endregion Collect data #region Finish up reporting if (!token.IsCancellationRequested) { ReportSet.Reports.Add(report); } await FinishRequestAsync(request, !token.IsCancellationRequested); #endregion Finish up reporting }
private static string GetRequestString(ReportRequest request1) { return(JsonConvert.SerializeObject(request1)); }
public List <GoogleApisAnalyticsReportingResponseModel> GetData(GoogleApisAnalyticsReportingRequestModel model) { var responseModel = new List <GoogleApisAnalyticsReportingResponseModel>(); try { using (var analyticsreporting = GoogleServiceAccount.AuthenticateServiceAccountFromKey()) { //set parameters var dateRange = new DateRange() { StartDate = model.StartDate.ToString("yyyy-MM-dd"), EndDate = model.EndDate.ToString("yyyy-MM-dd") }; var dimensions = new List <Dimension>() { new Dimension { Name = "ga:date" }, new Dimension { Name = "ga:pagePath" } }; var metrics = new List <Metric>() { new Metric { Expression = "ga:pageviews", Alias = "PV" }, new Metric { Expression = "ga:uniquePageviews", Alias = "UV" } }; var filters = ""; if (!string.IsNullOrEmpty(model.PagePath)) { filters = string.Format("ga:pagePath=={0}", model.PagePath); } var orderBys = new List <OrderBy>() { new OrderBy { FieldName = "ga:date", SortOrder = "descending" } }; //request report var reportRequest = new ReportRequest { ViewId = viewId, DateRanges = new List <DateRange>() { dateRange }, Dimensions = dimensions, Metrics = metrics, FiltersExpression = filters, //Segments = segments, OrderBys = orderBys }; //result var requests = new List <ReportRequest>(); requests.Add(reportRequest); // Create the GetReportsRequest object. var getReport = new GetReportsRequest() { ReportRequests = requests }; // Call the batchGet method. var response = analyticsreporting.Reports.BatchGet(getReport).Execute(); //mapper viewModels foreach (Report report in response.Reports) { var rows = (List <ReportRow>)report.Data.Rows; if (rows == null) { throw new Exception("데이터가 없습니다."); } foreach (ReportRow row in rows) { responseModel.Add(new GoogleApisAnalyticsReportingResponseModel { Date = row.Dimensions[0], PagePath = row.Dimensions[1], PageViews = row.Metrics[0].Values[0], UniquePageviews = row.Metrics[0].Values[1] }); } } } } catch (Exception e) { } return(responseModel); }
// Request the report and returns the ReportRequestId that can be used to check report // status and then used to download the report. private async Task<string> SubmitGenerateReportAsync(ReportRequest report) { var request = new SubmitGenerateReportRequest { ReportRequest = report }; return (await Service.CallAsync((s, r) => s.SubmitGenerateReportAsync(r),request)).ReportRequestId; }
public void Remove(ReportRequest pIn) => _report.DeleteOne(p => p.UUID == pIn.UUID);
public async Task SaveToDatabase(ReportRequest reportRequest) { reportRequest.Id = Guid.NewGuid().ToString(); await this.container.CreateItemAsync(reportRequest); }
public List <RCHErrorReportDetail> FetchRCHErrorReport(ReportRequest rData) { var allData = _supportData.FetchRCHErrorReport(rData); return(allData); }
protected void Operation(WordDocument doc, ReportRequest request) { long id = request.id; var codeType = request.type; doc.ReplaceText("Org", GetOrgName(SecurityHelper.CurrentPrincipal.OrgId)); IReportManageService reportManageService = IOCContainer.Instance.Resolve <IReportManageService>(); var question = reportManageService.GetQuestion(id); if (question.Id == 0) { InitData(typeof(Question), doc); switch (codeType) { case "ADLReport": InitValue(31, 40, doc); break; case "MMSEReport": InitValue(41, 70, doc); break; case "SPMSQReport": InitValue(71, 80, doc); break; case "IADLReport": InitValue(81, 88, doc); break; case "ColeScaleReport": InitValue(89, 89, doc); break; case "PrsSoreReport": InitValue(123, 128, doc); break; } return; } List <Dictionary <string, string> > list = new List <Dictionary <string, string> >(); var dict = new Dictionary <string, string>(); BindData(question, doc, dict); var answers = reportManageService.GetAnswers(question.Id).ToList(); switch (codeType) { case "ADLReport": for (var i = 31; i <= 40; i++) { var answer = answers.Find(o => o.Id == i); dict.Add("Value" + i, answer != null ? answer.Value : "未填"); } break; case "MMSEReport": for (var i = 41; i <= 70; i++) { var answer = answers.Find(o => o.Id == i); doc.ReplaceText("Value" + i, answer != null ? answer.Value : "未填"); } break; case "SPMSQReport": for (var i = 71; i <= 80; i++) { var answer = answers.Find(o => o.Id == i); dict.Add("Value" + i, answer != null ? answer.Value : "未填"); } break; case "IADLReport": for (var i = 81; i <= 88; i++) { var answer = answers.Find(o => o.Id == i); dict.Add("Value" + i, answer != null ? answer.Value : "未填"); } break; case "ColeScaleReport": for (var i = 89; i <= 89; i++) { var answer = answers.Find(o => o.Id == i); dict.Add("Value" + i, answer != null ? answer.Value : "未填"); } break; case "PrsSoreReport": for (var i = 123; i <= 128; i++) { var answer = answers.Find(o => o.Id == i); dict.Add("Value" + i, answer != null ? answer.Value : "未填"); } break; } list.Add(dict); doc.FillTable(0, list, doc, codeType); }
public List <SSTCorrectionReportDetail> FetchSSTErrorReport(ReportRequest rData) { var allData = _supportData.FetchSSTErrorReport(rData); return(allData); }
// // GET: /Report/ public ActionResult Index(string application, [FromUri] ReportRequest request) { // this is necessary for opening the report in a new window if (request.ReportName == null) { return(View("Index")); } if (request.SearchDTO == null) { request.SearchDTO = new PaginatedSearchRequestDto(); } request.SearchDTO.ShouldPaginate = false; request.Key.Mode = SchemaMode.input; request.Key.Platform = ClientPlatform.Web; var dataResponse = _dataController.Get(application, request); var data = new DataTable(); if (dataResponse is ApplicationListResult) { var listData = ((ApplicationListResult)dataResponse).ResultObject; var schema = ((ApplicationListResult)dataResponse).Schema; data = ReportUtil.ConvertMapListToTable( listData.Select(f => f.Attributes).ToList(), schema ); } else if (dataResponse is ApplicationDetailResult) { var detailData = ((ApplicationDetailResult)dataResponse).ResultObject; var schema = ((ApplicationDetailResult)dataResponse).Schema; data = ReportUtil.ConvertMapListToTable( new List <IDictionary <string, object> >() { detailData.Attributes }, schema ); } var rdlc = ReportUtil.GetDescriptorPath(request.ReportName); var dsName = ReportUtil.GetDataSetName(request.ReportName); var parameters = new Dictionary <string, string>(); if (request.SearchDTO != null && !String.IsNullOrEmpty(request.SearchDTO.SearchParams) && !String.IsNullOrEmpty(request.SearchDTO.SearchValues)) { parameters = (Dictionary <string, string>) PopulateReportParamters(request.SearchDTO.SearchParams, request.SearchDTO.SearchValues); } //Adding SCIM to parameters for IncidentPerLocationSCIMReport string scimMatch = "SCIM"; Regex regex = new Regex(scimMatch, RegexOptions.IgnoreCase); if (regex.IsMatch(request.ReportName) && parameters.ContainsKey("commodities_description_header")) { string[] arrTemp = parameters["commodities_description_header"].Split('-'); parameters.Add("system_header", arrTemp[0] + '-' + arrTemp[1]); parameters.Add("component_header", (arrTemp.Length > 2) ? arrTemp[2] : MISSING); parameters.Add("item_header", (arrTemp.Length > 3) ? arrTemp[3] : MISSING); parameters.Add("module_header", (arrTemp.Length > 4) ? ModuleFieldValue(arrTemp) : MISSING); } else if (request.ReportName.Equals("ITCReport") && parameters.ContainsKey("persongroup_description_header")) { var strbld = new StringBuilder(); foreach (var location in parameters["persongroup_description_header"].Split(',')) { var siteAndCostCenter = location.Split('-'); strbld.Append("HLAG-"); strbld.Append(siteAndCostCenter[0]); strbld.Append(" - "); strbld.Append(siteAndCostCenter[1]); strbld.Append(", "); } if (strbld.Length > 2) { strbld.Remove(strbld.Length - 2, 2); } parameters["persongroup_description_header"] = strbld.ToString(); var user = SecurityFacade.CurrentUser(); parameters["requestor"] = user.FirstName + " " + user.LastName; } return(View("Index", new ReportModel(rdlc, dsName, data, parameters))); }
internal override ReportResponse HandleSignals(ReportRequest request) { _response = _ardResponseFac.InvalidRequest <ReportResponse>(ErrorEnum.ShouldNotSendSignals, CommandEnum.Process); LogOnDashAsync($"{_proxy.Info.UniqueName} sent signals but should be processing a {OrderUnderProcess.RecipeName} (ref: {OrderUnderProcess.Reference})."); return((ReportResponse)_response); }
/// <summary> /// Submits a download request to the Bing Ads reporting service with the specified parameters. /// </summary> /// <param name="request">Determines various download parameters, for example what entities to download. </param> /// <returns>A task that represents the asynchronous operation. The task result will be the submitted download operation.</returns> /// <exception cref="FaultException{TDetail}">Thrown if a fault is returned from the Bing Ads service.</exception> /// <exception cref="OAuthTokenRequestException">Thrown if tokens can't be refreshed due to an error received from the Microsoft Account authorization server.</exception> public Task <ReportingDownloadOperation> SubmitDownloadAsync(ReportRequest request) { return(SubmitDownloadAsyncImpl(request)); }
public List <DimensionResult4Columns> GetDimensionsAndMetricsUneven(string authenticationJson, string viewId, List <Dimension> dimensions, List <Metric> metrics, string startDate, string endDate, string filter = "", OrderBy orderBy = null) { var browserSessions = new List <DimensionResult4Columns>(); var credential = Google.Apis.Auth.OAuth2.GoogleCredential.FromJson(authenticationJson) .CreateScoped(new[] { Google.Apis.AnalyticsReporting.v4.AnalyticsReportingService.Scope.AnalyticsReadonly }); using (var analytics = new Google.Apis.AnalyticsReporting.v4.AnalyticsReportingService(new Google.Apis.Services.BaseClientService.Initializer { HttpClientInitializer = credential })) { // Create the DateRange object. DateRange dateRange = new DateRange() { StartDate = startDate, EndDate = endDate }; // Create the ReportRequest object. // Create the ReportRequest object. ReportRequest reportRequest = new ReportRequest { ViewId = viewId, DateRanges = new List <DateRange>() { dateRange }, Dimensions = dimensions, // new List<Dimension>() { browser, campaign, age }, FiltersExpression = filter, PageSize = 10000, OrderBys = new List <OrderBy>() { orderBy }, Metrics = metrics, // new List<Metric>() { sessions, pageviews } }; List <ReportRequest> requests = new List <ReportRequest>(); requests.Add(reportRequest); // Create the GetReportsRequest object. GetReportsRequest getReport = new GetReportsRequest() { ReportRequests = requests }; // Call the batchGet method. GetReportsResponse response = analytics.Reports.BatchGet(getReport).Execute(); var rows = response.Reports.FirstOrDefault().Data.Rows; foreach (var row in rows) { if ((row.Dimensions.Count() == 3 || row.Dimensions.Count() == 4) && row.Metrics.Count() == 1) { browserSessions.Add(new DimensionResult4Columns() { FirstColumn = row.Dimensions[0], SecondColumn = row.Dimensions[1], ThirdColumn = row.Dimensions[2], Value = row.Metrics.FirstOrDefault().Values[0] }); } } } return(browserSessions); }
public override async Task ExecuteAsync(ReportRequest request, CancellationToken token, IProgress <JobStatus> progress = null) { #region Reporting initialization request = await StartRequestAsync(request); var criterion = await _serviceFacade.ReportCriterionRepository.GetByIdAsync(request.ReportCriteriaId) ?? throw new GraException($"Report criteria {request.ReportCriteriaId} for report request id {request.Id} could not be found."); if (criterion.SiteId == null) { throw new ArgumentException(nameof(criterion.SiteId)); } int count = 0; var asof = _serviceFacade.DateTimeProvider.Now; var askIfFirstTime = await GetSiteSettingBoolAsync(criterion, SiteSettingKey.Users.AskIfFirstTime); #endregion Reporting initialization #region Collect data UpdateProgress(progress, 1, "Starting report...", request.Name); var programTotals = new Dictionary <int, (int users, int firstTime, int achievers)>(); var programReports = new List <StoredReport>(); var programs = await _programRepository.GetAllAsync((int)criterion.SiteId); var branches = await _branchRepository.GetAllAsync((int)criterion.SiteId); int totalItems = branches.Count() * programs.Count(); foreach (var program in programs) { if (token.IsCancellationRequested) { break; } var report = new StoredReport { Title = program.Name, AsOf = asof }; var reportData = new List <object[]>(); // header row var headerRow = new List <object> { "Library System", "Library", "Signups" }; if (askIfFirstTime) { headerRow.Add("First time Participants"); } headerRow.Add("Achievers"); report.HeaderRow = headerRow.ToArray(); int programTotalUsers = 0; int programTotalFirstTime = 0; int programTotalAchievers = 0; var systemIds = branches .OrderBy(_ => _.SystemName) .GroupBy(_ => _.SystemId) .Select(_ => _.First().SystemId); foreach (var systemId in systemIds) { foreach (var branch in branches.Where(_ => _.SystemId == systemId)) { if (totalItems > 0) { UpdateProgress(progress, ++count * 100 / totalItems, $"{program.Name} - {branch.SystemName}", request.Name); } criterion.BranchId = branch.Id; criterion.ProgramId = program.Id; int users = await _userRepository.GetCountAsync(criterion); int achievers = await _userRepository.GetAchieverCountAsync(criterion); var row = new List <object> { branch.SystemName, branch.Name, users }; if (askIfFirstTime) { int firstTime = await _userRepository.GetFirstTimeCountAsync(criterion); programTotalFirstTime += firstTime; row.Add(firstTime); } row.Add(achievers); programTotalUsers += users; programTotalAchievers += achievers; reportData.Add(row.ToArray()); if (token.IsCancellationRequested) { break; } } // foreach branch if (token.IsCancellationRequested) { break; } } // foreach system report.Data = reportData.ToArray(); var footerRow = new List <object> { "Total", string.Empty, programTotalUsers, }; if (askIfFirstTime) { footerRow.Add(programTotalFirstTime); } footerRow.Add(programTotalAchievers); report.FooterRow = footerRow.ToArray(); programTotals.Add(program.Id, (programTotalUsers, programTotalFirstTime, programTotalAchievers)); double completion = 0; if (programTotalUsers > 0) { completion = (double)programTotalAchievers * 100 / programTotalUsers; } var endDate = criterion.EndDate ?? asof; report.FooterText = new string[] { $"Completion rate: {completion:N2}%", $"This report was run on {asof:g} and contains data up to {endDate:g}." }; programReports.Add(report); } // foreach program var summaryReport = new StoredReport { Title = "Summary", AsOf = asof }; var summaryReportData = new List <object[]>(); var summaryHeader = new List <object>() { "Program", "Signups", }; if (askIfFirstTime) { summaryHeader.Add("First time Participants"); } summaryHeader.Add("Achievers"); summaryHeader.Add("Achiever Points"); summaryReport.HeaderRow = summaryHeader.ToArray(); int signupTotal = 0; int firstTimeTotal = 0; int achieverTotal = 0; foreach (var program in programs) { var(users, firstTime, achievers) = programTotals[program.Id]; var summaryRow = new List <object> { program.Name, users }; if (askIfFirstTime) { summaryRow.Add(firstTime); } summaryRow.Add(achievers); summaryRow.Add(program.AchieverPointAmount); summaryReportData.Add(summaryRow.ToArray()); signupTotal += users; firstTimeTotal += firstTime; achieverTotal += achievers; } summaryReport.Data = summaryReportData.ToArray(); var summaryFooter = new List <object>() { "Total", signupTotal, }; if (askIfFirstTime) { summaryFooter.Add(firstTimeTotal); } summaryFooter.Add(achieverTotal); summaryFooter.Add(string.Empty); summaryReport.FooterRow = summaryFooter.ToArray(); double totalCompletion = 0; if (signupTotal > 0) { totalCompletion = (double)achieverTotal * 100 / signupTotal; } summaryReport.FooterText = new string[] { $"Completion rate: {totalCompletion:N2}%" }; #endregion Collect data #region Finish up reporting if (!token.IsCancellationRequested) { ReportSet.Reports.Add(summaryReport); foreach (var report in programReports) { ReportSet.Reports.Add(report); } } await FinishRequestAsync(request, !token.IsCancellationRequested); #endregion Finish up reporting }
public override async Task ExecuteAsync(ReportRequest request, CancellationToken token, IProgress <OperationStatus> progress = null) { #region Reporting initialization if (request == null) { throw new ArgumentNullException(nameof(request)); } request = await StartRequestAsync(request); var criterion = await _serviceFacade.ReportCriterionRepository.GetByIdAsync(request.ReportCriteriaId) ?? throw new GraException($"Report criteria {request.ReportCriteriaId} for report request id {request.Id} could not be found."); if (criterion.SiteId == null) { throw new ArgumentNullException(nameof(criterion.SiteId)); } string title = ""; if (criterion.SystemId.HasValue) { title = (await _systemRepository.GetByIdAsync(criterion.SystemId.Value)).Name; } var report = new StoredReport { Title = title, AsOf = _serviceFacade.DateTimeProvider.Now }; var reportData = new List <object[]>(); #endregion Reporting initialization #region Collect data UpdateProgress(progress, 1, "Starting report...", request.Name); // header row report.HeaderRow = new object[] { criterion.SystemId.HasValue ? "System Name" : "Branch Name" }; var programs = await _programRepository.GetAllAsync(criterion.SiteId.Value); foreach (var program in programs) { report.HeaderRow = report.HeaderRow.Append(program.Name); } report.HeaderRow = report.HeaderRow.Append("Total"); int count = 0; var users = await _userRepository.GetUsersByCriterionAsync(criterion); if (criterion.SystemId.HasValue) { users = users.Where(_ => _.SystemId == criterion.SystemId); var branches = await _branchRepository.GetBySystemAsync(criterion.SystemId.Value); foreach (var branch in branches) { if (token.IsCancellationRequested) { break; } UpdateProgress(progress, ++count * 100 / branches.Count(), $"Processing: {branch.SystemName} - {branch.Name}", request.Name); var branchUsers = users.Where(_ => _.BranchId == branch.Id); IEnumerable <object> row = new object[] { branch.Name }; foreach (var program in programs) { row = row.Append(branchUsers.Where(_ => _.ProgramId == program.Id).Count()); } row = row.Append(branchUsers.Count()); reportData.Add(row.ToArray()); } } else { var systems = await _systemRepository.GetAllAsync(criterion.SiteId.Value); foreach (var system in systems) { if (token.IsCancellationRequested) { break; } UpdateProgress(progress, ++count * 100 / systems.Count(), $"Processing: {system.Name}", request.Name); var systemUsers = users.Where(_ => _.SystemId == system.Id); IEnumerable <object> row = new object[] { system.Name }; foreach (var program in programs) { row = row.Append(systemUsers.Where(_ => _.ProgramId == program.Id).Count()); } row = row.Append(systemUsers.Count()); reportData.Add(row.ToArray()); } } report.Data = reportData.ToArray(); IEnumerable <object> footerRow = new object[] { "Total" }; foreach (var program in programs) { footerRow = footerRow.Append(users.Where(_ => _.ProgramId == program.Id).Count()); } footerRow = footerRow.Append(users.Count()); report.FooterRow = footerRow.ToArray(); #endregion Collect data #region Finish up reporting _logger.LogInformation($"Report {GetType().Name} with criterion {criterion.Id} ran in {StopTimer()}"); request.Success = !token.IsCancellationRequested; if (request.Success == true) { ReportSet.Reports.Add(report); request.Finished = _serviceFacade.DateTimeProvider.Now; request.ResultJson = Newtonsoft.Json.JsonConvert.SerializeObject(ReportSet); } await _serviceFacade.ReportRequestRepository.UpdateSaveNoAuditAsync(request); #endregion Finish up reporting }
public ActionResult Preview() { string templateName = Request["templateName"]; string recId = Request["recId"]; ReportRequest request = new ReportRequest(); if (templateName != null) { switch (templateName) { case "DCS1.1": if (!string.IsNullOrEmpty(recId)) { request.id = int.Parse(recId); this.GeneratePDF("DCS1.1", this.LiftHistoryOperation, request); } break; case "DCS1.2": if (!string.IsNullOrEmpty(recId)) { request.id = int.Parse(recId); this.GeneratePDF("DCS1.2", this.ReferralOperation, request); } break; // case "DCS1.3": if (!string.IsNullOrEmpty(recId)) { request.id = int.Parse(recId); this.GeneratePDF("DCS1.3", this.BasicInfoOperation, request); } break; case "DCS1.4": if (!string.IsNullOrEmpty(recId)) { request.id = int.Parse(recId); this.GeneratePDF("DCS1.4", this.RegLifeQualityEvalOperation, request); } break; case "DCS1.5": if (!string.IsNullOrEmpty(recId)) { request.id = int.Parse(recId); this.GeneratePDF("DCS1.5", this.IpdOutOperation, request); } break; case "DCS1.7": if (!string.IsNullOrEmpty(recId)) { request.id = int.Parse(recId); this.GeneratePDF("DCS1.7", this.IpdInOperation, request); } break; case "DCS1.6": if (!string.IsNullOrEmpty(recId)) { request.id = int.Parse(recId); this.GeneratePDF("DCS1.6", this.RegQuestionEvalOperation, request); } break; case "DCS1.8": if (!string.IsNullOrEmpty(recId)) { request.id = int.Parse(recId); this.GeneratePDF("DCS1.8", this.OnDayLifeOperation, request); } break; case "DCS1.9": if (!string.IsNullOrEmpty(recId)) { request.id = int.Parse(recId); request.feeNo = Convert.ToInt32(Request["feeNo"]); this.GeneratePDF("DCS1.9", this.OnSocialEvalOperation, request); } break; } } return(View()); }
/// <summary> /// Get all reports configured in App.config /// </summary> /// <returns></returns> public GetReportsResponse GetReport(string viewId) { var combinedReportResponse = new GetReportsResponse { Reports = new List <GAReport>() }; try { Logger.Info("Processing View Id: " + viewId); var config = ReportConfiguration.GetConfig(); foreach (var item in config.Reports) { if (item is Report report) { var stopwatch = new Stopwatch(); Logger.Info("Started fetching report: " + report.Name); // Create the Metrics and dimensions object based on configuration. var metrics = report.Metrics.Split(',').Select(m => new Metric { Expression = m }).ToList(); var dimensions = report.Dimensions.Split(',').Select(d => new Dimension { Name = d }).ToList(); var reportRequest = new ReportRequest { DateRanges = GetDateRangeFromConfiguration(config), Metrics = metrics, Dimensions = dimensions, ViewId = viewId, SamplingLevel = "LARGE", //https://developers.google.com/analytics/devguides/reporting/core/v4/basics#sampling PageSize = 10000 //The Analytics Core Reporting API returns a maximum of 10,000 rows per request, no matter how many you ask for. https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet }; stopwatch.Start(); var reportsResponse = analyticsReportingServiceInstance.Reports.BatchGet(new GetReportsRequest { ReportRequests = new List <ReportRequest> { reportRequest } }).Execute(); if (reportsResponse != null) { ((List <GAReport>)combinedReportResponse.Reports).AddRange(reportsResponse.Reports); while (reportsResponse.Reports[0].NextPageToken != null) { reportRequest.PageToken = reportsResponse.Reports[0].NextPageToken; reportsResponse = analyticsReportingServiceInstance.Reports.BatchGet(new GetReportsRequest { ReportRequests = new List <ReportRequest> { reportRequest } }).Execute(); ((List <GAReport>)combinedReportResponse.Reports).AddRange(reportsResponse.Reports); } stopwatch.Stop(); } Logger.Info("Finished fetching report: " + report.Name); Logger.Info(string.Format("Time elapsed: {0:hh\\:mm\\:ss}", stopwatch.Elapsed)); } } } catch (Exception ex) { Logger.Error("Error in fetching reports: " + ex); } return(combinedReportResponse); }
/// <summary> /// 社工个案评估与处遇计划表 /// </summary> /// <param name="doc"></param> /// <param name="request"></param> private void OnSocialEvalOperation(WordDocument doc, ReportRequest request) { var org = organizationManageService.GetOrg(SecurityHelper.CurrentPrincipal.OrgId); doc.ReplaceText("Org", org.Data.OrgName); var basic = reportManageService.GetBasicInfoById(Convert.ToInt32(request.feeNo)); var question = service.QuerySwRegEvalPlan(request.id, Convert.ToInt32(request.feeNo)); if (question == null) { return; } BindData(question.Data.swRegEvalPlanModel, doc); doc.ReplaceText("YEAR", Convert.ToDateTime(question.Data.swRegEvalPlanModel.INDATE).Year.ToString()); doc.ReplaceText("MONTH", Convert.ToDateTime(question.Data.swRegEvalPlanModel.INDATE).Month.ToString()); doc.ReplaceText("DAY", Convert.ToDateTime(question.Data.swRegEvalPlanModel.INDATE).Day.ToString()); doc.ReplaceText("AGE", (DateTime.Now.Year - Convert.ToDateTime(question.Data.swRegEvalPlanModel.BIRTHDATE).Year).ToString()); string imgPath = basic.Data.EcologicalMap; if (imgPath != null) { //string imagePath = string.Format(@"{0}\{1}", mapPath, basic.Data.EcologicalMap); //doc.InsertImage("InsertImage", mapPath, 300, 200); try { string mapPath = Server.MapPath(VirtualPathUtility.GetDirectory("~")) + imgPath.Substring(1); doc.InsertImage("InsertImage", mapPath, 300, 200); } catch (Exception ex) { doc.ReplaceText("InsertImage", ""); //应跳转至错误提示页 } } else { doc.ReplaceText("InsertImage", ""); } DataTable dt = new DataTable(); dt.Columns.Add("c1"); dt.Columns.Add("c2"); dt.Columns.Add("c3"); DataRow r = dt.NewRow(); r["c1"] = "前次工作目标"; r["c2"] = "执行情况"; r["c3"] = "执行成效"; dt.Rows.Add(r); for (var n = 0; n < question.Data.TaskGoalsStrategyModel.Count; n++) { var dr = dt.NewRow(); dr["c1"] = question.Data.TaskGoalsStrategyModel[n].QUESTIONTYPE; dr["c2"] = question.Data.TaskGoalsStrategyModel[n].CPDIA; dr["c3"] = question.Data.TaskGoalsStrategyModel[n].EVALUATIONVALUE; dt.Rows.Add(dr); } doc.FillTable(1, dt, "", "", 0); dt.Dispose(); DataTable dt1 = new DataTable(); dt1.Columns.Add("c1"); dt1.Columns.Add("c2"); dt1.Columns.Add("c3"); dt1.Columns.Add("c4"); dt1.Columns.Add("c5"); dt1.Columns.Add("c6"); DataRow r1 = dt1.NewRow(); r1["c1"] = "需求类别"; r1["c2"] = "项目"; r1["c3"] = "问题描述"; r1["c4"] = "处遇目标"; r1["c5"] = "阻助力分析"; r1["c6"] = "介入方式或资源连接"; dt1.Rows.Add(r1); for (var n = 0; n < question.Data.TaskGoalsStrategyModel.Count; n++) { var dr = dt1.NewRow(); dr["c1"] = question.Data.TaskGoalsStrategyModel[n].QUESTIONTYPE; dr["c2"] = question.Data.TaskGoalsStrategyModel[n].CPDIA; dr["c3"] = question.Data.TaskGoalsStrategyModel[n].QUESTIONDESC; dr["c4"] = question.Data.TaskGoalsStrategyModel[n].TREATMENTGOAL; dr["c5"] = question.Data.TaskGoalsStrategyModel[n].QUESTIONANALYSIS; dr["c6"] = question.Data.TaskGoalsStrategyModel[n].PLANACTIVITY; dt1.Rows.Add(dr); } doc.FillTable(2, dt1, "", "", 0); dt1.Dispose(); }
public override async Task ExecuteAsync(ReportRequest request, CancellationToken token, IProgress <OperationStatus> progress = null) { #region Reporting initialization if (request == null) { throw new ArgumentNullException(nameof(request)); } request = await StartRequestAsync(request); var criterion = await _serviceFacade.ReportCriterionRepository.GetByIdAsync(request.ReportCriteriaId) ?? throw new GraException($"Report criteria {request.ReportCriteriaId} for report request id {request.Id} could not be found."); if (criterion.SiteId == null) { throw new ArgumentNullException(nameof(criterion.SiteId)); } string title = ""; if (criterion.SystemId.HasValue) { title = (await _systemRepository.GetByIdAsync(criterion.SystemId.Value)).Name; } var report = new StoredReport { Title = title, AsOf = _serviceFacade.DateTimeProvider.Now }; var reportData = new List <object[]>(); #endregion Reporting initialization #region Collect data UpdateProgress(progress, 1, "Starting report...", request.Name); // header row report.HeaderRow = new object[] { "System Name", "Branch Name", "# Redeemed", "# Ordered" }; int count = 0; // running totals int totalEarned = 0; int totalOrdered = 0; var branches = criterion.SystemId != null ? await _branchRepository.GetBySystemAsync((int)criterion.SystemId) : await _branchRepository.GetAllAsync((int)criterion.SiteId); var systemIds = branches .OrderBy(_ => _.SystemName) .GroupBy(_ => _.SystemId) .Select(_ => _.First().SystemId); foreach (var systemId in systemIds) { if (token.IsCancellationRequested) { break; } foreach (var branch in branches.Where(_ => _.SystemId == systemId)) { UpdateProgress(progress, ++count * 100 / branches.Count(), $"Processing: {branch.SystemName} - {branch.Name}", request.Name); criterion.SystemId = systemId; criterion.BranchId = branch.Id; var vendorCodes = await _vendorCodeRepository.GetEarnedCodesAsync(criterion); int earnedCodes = vendorCodes.Count; int usedCodes = vendorCodes.Where(_ => _.IsUsed).Count(); totalEarned += earnedCodes; totalOrdered += usedCodes; var row = new List <object>() { branch.SystemName, branch.Name, earnedCodes, usedCodes }; reportData.Add(row.ToArray()); if (token.IsCancellationRequested) { break; } } } report.Data = reportData.ToArray(); // total row var footerRow = new List <object>() { "Total", string.Empty, totalEarned, totalOrdered }; report.FooterRow = footerRow.ToArray(); #endregion Collect data #region Finish up reporting _logger.LogInformation($"Report {GetType().Name} with criterion {criterion.Id} ran in {StopTimer()}"); request.Success = !token.IsCancellationRequested; if (request.Success == true) { ReportSet.Reports.Add(report); request.Finished = _serviceFacade.DateTimeProvider.Now; request.ResultJson = Newtonsoft.Json.JsonConvert.SerializeObject(ReportSet); } await _serviceFacade.ReportRequestRepository.UpdateSaveNoAuditAsync(request); #endregion Finish up reporting }
private async Task<ReportingDownloadOperation> SubmitDownloadAsyncImpl(ReportRequest request) { var submitRequest = new SubmitGenerateReportRequest {ReportRequest = request,}; SubmitGenerateReportResponse response; using (var apiService = new ServiceClient<IReportingService>(_authorizationData, _apiEnvironment)) { try { response = await apiService.CallAsync((s, r) => s.SubmitGenerateReportAsync(r), submitRequest).ConfigureAwait(false); } catch (Exception e) { throw new CouldNotSubmitReportingDownloadException("Submit download operation failed.", e); } } return new ReportingDownloadOperation(response.ReportRequestId, _authorizationData, response.TrackingId, _apiEnvironment) {StatusPollIntervalInMilliseconds = StatusPollIntervalInMilliseconds}; }
public ReportResponse GetViewResult(ReportRequest request) { var proxy = _reportService.CreateProxy(); return(proxy.GetViewResult(request)); }
public override async Task ExecuteAsync(ReportRequest request, CancellationToken token, IProgress <JobStatus> progress = null) { #region Reporting initialization request = await StartRequestAsync(request); var criterion = await _serviceFacade.ReportCriterionRepository.GetByIdAsync(request.ReportCriteriaId) ?? throw new GraException($"Report criteria {request.ReportCriteriaId} for report request id {request.Id} could not be found."); if (criterion.SiteId == null) { throw new ArgumentException(nameof(criterion.SiteId)); } var report = new StoredReport { Title = ReportAttribute?.Name, AsOf = _serviceFacade.DateTimeProvider.Now }; var reportData = new List <object[]>(); #endregion Reporting initialization #region Adjust report criteria as needed IEnumerable <int> triggerIds = null; if (!string.IsNullOrEmpty(criterion.TriggerList)) { try { triggerIds = criterion.TriggerList.Split(',').Select(int.Parse); } catch (Exception ex) { _logger.LogError($"Unable to convert trigger id list to numbers: {ex.Message}"); _logger.LogError($"Badge id list: {criterion.TriggerList}"); } } else { throw new GraException("No prizes selected."); } #endregion Adjust report criteria as needed #region Collect data UpdateProgress(progress, 1, "Starting report...", request.Name); // header row report.HeaderRow = new object[] { criterion.SystemId.HasValue ? "Branch Name" : "System Name", "# Redeemed" }; int count = 0; int totalRedemptionCount = 0; if (criterion.SystemId.HasValue) { var branches = await _branchRepository.GetBySystemAsync(criterion.SystemId.Value); foreach (var branch in branches) { if (token.IsCancellationRequested) { break; } UpdateProgress(progress, ++count * 100 / branches.Count(), $"Processing: {branch.SystemName} - {branch.Name}", request.Name); var redemptionCount = await _prizeWinnerRepository .GetBranchPrizeRedemptionCountAsync(branch.Id, triggerIds); totalRedemptionCount += redemptionCount; IEnumerable <object> row = new object[] { branch.Name, redemptionCount }; reportData.Add(row.ToArray()); } } else { var systems = await _systemRepository.GetAllAsync(criterion.SiteId.Value); foreach (var system in systems) { if (token.IsCancellationRequested) { break; } UpdateProgress(progress, ++count * 100 / systems.Count(), $"Processing: {system.Name}", request.Name); var redemptionCount = await _prizeWinnerRepository .GetSystemPrizeRedemptionCountAsync(system.Id, triggerIds); totalRedemptionCount += redemptionCount; IEnumerable <object> row = new object[] { system.Name, redemptionCount }; reportData.Add(row.ToArray()); } } report.Data = reportData.ToArray(); IEnumerable <object> footerRow = new object[] { "Total", totalRedemptionCount }; report.FooterRow = footerRow.ToArray(); #endregion Collect data #region Finish up reporting if (!token.IsCancellationRequested) { ReportSet.Reports.Add(report); } await FinishRequestAsync(request, !token.IsCancellationRequested); #endregion Finish up reporting }
public async Task <IHttpActionResult> GetReport(ReportRequest req) { var result = await _logic.GetReport(req, Request.RequestUri); return(Ok(result)); }
private async Task<ReportingDownloadOperation> SubmitDownloadAsyncImpl(ReportRequest request) { var submitRequest = new SubmitGenerateReportRequest {ReportRequest = request,}; SubmitGenerateReportResponse response; using (var apiService = new ServiceClient<IReportingService>(_authorizationData)) { response = await apiService.CallAsync((s, r) => s.SubmitGenerateReportAsync(r), submitRequest).ConfigureAwait(false); } return new ReportingDownloadOperation(response.ReportRequestId, _authorizationData, response.TrackingId) {StatusPollIntervalInMilliseconds = StatusPollIntervalInMilliseconds}; }
/// <summary> /// Submit the download request and then use the ReportingDownloadOperation result to /// track status yourself using GetStatusAsync. /// </summary> /// <param name="reportRequest"></param> /// <returns></returns> private async Task SubmitAndDownload(ReportRequest reportRequest) { var reportingDownloadOperation = await ReportingService.SubmitDownloadAsync(reportRequest); ReportingOperationStatus downloadStatus; var waitTime = new TimeSpan(0, 0, 5); // This sample polls every 5 seconds up to 2 minutes. for (int i = 0; i < 24; i++) { Thread.Sleep(waitTime); downloadStatus = await reportingDownloadOperation.GetStatusAsync(); if (downloadStatus.Status == ReportRequestStatusType.Success) { break; } } var resultFilePath = await reportingDownloadOperation.DownloadResultFileAsync( FileDirectory, ResultFileName, decompress: true, overwrite: true); // Set this value true if you want to overwrite the same file. OutputStatusMessage(String.Format("Download result file: {0}\n", resultFilePath)); }