private async void getReportDataBtn_Click(object sender, EventArgs e) { ValidateInputForUsageList(); using (new WaitCursor()) { updateStatus("Fetching usage report list ...", true); string availReportsJson = await GetEnrollmentUsageList(enrollmentTx.Text, accessKeyPriceTxt.Text); usageListJsonTx.Text = availReportsJson; try { EAAvailableUsageReports availReports = JsonConvert.DeserializeObject <EAAvailableUsageReports>(availReportsJson); //Parse the response and fill the usage list fillUsageList(availReports); } catch (Exception ex) { MessageBox.Show($"An error occured getting report data::{ex.ToString()}"); } updateStatus("Report list populated"); } }
private void fillUsageList(EAAvailableUsageReports reports) { availReportTree.Nodes.Clear(); TreeNode rootNode = availReportTree.Nodes.Add($"Available reports ({reports.AvailableMonths.Count})"); TreeNode yearNode = null; int prevYear = 0; foreach (EAUsageAvailableMonth month in reports.AvailableMonths) { //Parse the month and year. Add the years DateTime curMonthReports = DateTime.Parse(month.Month); int curYear = curMonthReports.Year; if (curYear != prevYear) { //If the year changes, add a new node yearNode = rootNode.Nodes.Add(curYear.ToString()); } //Add a new month node for this item TreeNode monthNode = yearNode.Nodes.Add(month.Month, curMonthReports.ToString("MMMM")); if (!string.IsNullOrEmpty(month.LinkToDownloadDetailReport)) { TreeNode detRpt = monthNode.Nodes.Add(month.LinkToDownloadDetailReport, UsageReportType.Detail.ToString()); detRpt.ToolTipText = month.LinkToDownloadDetailReport; } if (!string.IsNullOrEmpty(month.LinkToDownloadPriceSheetReport)) { TreeNode dRpt = monthNode.Nodes.Add(month.LinkToDownloadPriceSheetReport, UsageReportType.PriceSheet.ToString()); dRpt.ToolTipText = month.LinkToDownloadPriceSheetReport; } if (!string.IsNullOrEmpty(month.LinkToDownloadStoreChargeReport)) { TreeNode scRpt = monthNode.Nodes.Add(month.LinkToDownloadStoreChargeReport, UsageReportType.StoreCharge.ToString()); scRpt.ToolTipText = month.LinkToDownloadStoreChargeReport; } if (!string.IsNullOrEmpty(month.LinkToDownloadSummaryReport)) { TreeNode sumRpt = monthNode.Nodes.Add(month.LinkToDownloadSummaryReport, UsageReportType.Summary.ToString()); sumRpt.ToolTipText = month.LinkToDownloadSummaryReport; } //Add the reconciliation nodes to the tree TreeNode reconcileU2PNode = monthNode.Nodes.Add(UsageReportType.ReconcileUsageToPriceSheet.ToString(), UsageReportType.ReconcileUsageToPriceSheet.ToString()); reconcileU2PNode.ToolTipText = "Reconcile Usage to Price Sheet"; TreeNode reconcileS2PNode = monthNode.Nodes.Add(UsageReportType.ReconcileStoreChargeToPriceSheet.ToString(), UsageReportType.ReconcileStoreChargeToPriceSheet.ToString()); reconcileS2PNode.ToolTipText = "Reconcile Store to Price Sheet"; prevYear = curYear; } }