void ValidateCompaniesVolume() { List <string> volumeCompanies = volumeChartBindingData.Select(c => c.CompanyName).ToList(); List <string> exceptCompanies = companies.Except(volumeCompanies).ToList(); for (int i = 0; i < volumeChartBindingData.Count; i++) { CompaniesVolumeData volumeData = volumeChartBindingData[i]; if (!companies.Contains(volumeData.CompanyName)) { var res = watchLisBindingData.Where(c => exceptCompanies.Contains(c.CompanyName)).ToList(); if (res.Count > 0) { double maxVolume = res.Max(c => c.Volume); CompanyTradingDataViewModel vm = watchLisBindingData.Where(c => c.Volume == maxVolume).Select(c => c).FirstOrDefault(); exceptCompanies.Remove(vm.CompanyName); volumeChartBindingData[i] = new CompaniesVolumeData() { CompanyName = vm.CompanyName, Volume = (int)maxVolume }; } } } }
void SetVolumeOfSelectedCompany() { if (volumeChartBindingData.Count == 0 && SelectedCompany != null) { CompaniesVolumeData cvd = new CompaniesVolumeData(); cvd.CompanyName = SelectedCompany.CompanyName; cvd.Volume = (int)SelectedCompany.Volume; volumeChartBindingData.Add(cvd); } else if (SelectedCompany != null) { volumeChartBindingData[0].CompanyName = SelectedCompany.CompanyName; volumeChartBindingData[0].Volume = (int)SelectedCompany.Volume; } }
public CompaniesVolumeData[] GetCompaniesVolumeFromPeriod(DateTime start, DateTime end) { lock (sem) { int[] topIds = GetTopRatedCompanyIDs(start); CompaniesVolumeData[] result = new CompaniesVolumeData[topIds.Length]; for (int i = 0; i < topIds.Length; i++) { int volume = GetStockData().Where(e => e.Date >= start && e.CompanyID == topIds[i]).Select(e => e.Volume).ToArray()[0]; CompaniesVolumeData data = new CompaniesVolumeData() { CompanyName = GetCompanyNameByID(topIds[i]), Volume = (int)volume }; result[i] = data; } return(result); } }