public List<CapabilityTrendAnalysis> GetCapabilityTrendAnalysis(string capName, string regName, string counName, string busTypeName, string fromDateStr, string toDateStr) { List<CAPABILITYGAPINFO> capGapInfoList; DateTime toDate; DateTime fromDate; if (!DateTime.TryParse(fromDateStr, out fromDate)) { fromDate = DateTime.MinValue; } if (!DateTime.TryParse(toDateStr, out toDate)) { toDate = DateTime.MaxValue; } if (regName != "All") { if (busTypeName != "All") { capGapInfoList = GetCapabilityGapInfosFromCapabilityRegionAndBusinessType(capName, regName, counName, busTypeName, fromDate, toDate); } else { capGapInfoList = GetCapabilityGapInfosFromCapabilityRegion(capName, regName, counName, fromDate, toDate); } } else { if (busTypeName != "All") { capGapInfoList = GetCapabilityGapInfosFromCapabilityBusinessType(capName, busTypeName, fromDate, toDate); } else { capGapInfoList = GetCapabilityGapInfosFromCapability(capName, fromDate, toDate); } } List<CapabilityTrendAnalysis> ctaList = new List<CapabilityTrendAnalysis>(); CapabilityTrendAnalysis cta; CLIENT client; if (capGapInfoList != null) { foreach (CAPABILITYGAPINFO capGapInfo in capGapInfoList) { if (capGapInfo.GAP.HasValue && capGapInfo.PRIORITIZEDGAP.HasValue) { cta = new CapabilityTrendAnalysis(); client = capGapInfo.CLIENT; cta.Date = client.STARTDATE; cta.Country = client.COUNTRY.NAME.TrimEnd(); cta.Region = client.COUNTRY.REGION.NAME.TrimEnd(); cta.BusinessType = client.BUSINESSTYPE.NAME.TrimEnd(); cta.Country = cta.Region; cta.CapabilityGap = capGapInfo.GAP.Value; cta.PrioritizedCapabilityGap = capGapInfo.PRIORITIZEDGAP.Value; cta.GapType = capGapInfo.GAPTYPE.TrimEnd(); cta.PrioritizedGapType = capGapInfo.PRIORITIZEDGAPTYPE.TrimEnd(); cta.Name = capName; ctaList.Add(cta); } } } return ctaList; }
private void CreateCapabilityToTrack(string region, string country, string busi, string from, string to) { if (currentlyBeingTracked == "" || currentlyBeingTracked == "Capability") { List<CapabilityTrendAnalysis> capabilities = new List<CapabilityTrendAnalysis>(); capabilities = db.GetCapabilityTrendAnalysis(capabilitiesComboBox.Text, region, country, busi, from, to); CapabilityTrendAnalysis ent = new CapabilityTrendAnalysis(); if (capabilities.Count > 0) { capabilities.Sort((x, y) => DateTime.Compare(x.Date, y.Date)); float gap = capabilities.Average(d => d.CapabilityGap); float prior = capabilities.Average(d => d.PrioritizedCapabilityGap); ent.CapabilityGap = gap; ent.PrioritizedCapabilityGap = prior; ent.GapType = "---"; ent.PrioritizedGapType = "---"; ent.Type1 = TrendAnalysisEntity.Type.Master; ent.Name = capabilitiesComboBox.Text; capabilitiesToTrack.Add(ent); } else MessageBox.Show("Query returned no results"); foreach (CapabilityTrendAnalysis cap in capabilities) { ent.Children++; cap.Type1 = TrendAnalysisEntity.Type.Child; capabilitiesToTrack.Add(cap); } trendGridView.DataSource = null; trendGridView.DataSource = capabilitiesToTrack; trendGridView.Refresh(); currentlyBeingTracked = "Capability"; trendGridView.Columns["Collapse"].Visible = true; } else { MessageBox.Show("You can only track one entity type at a time. Please clear grid and try again."); } }