public override async Task ExecuteAsync(object parameter) { try { if (_importVM.dgCSVPrices.Count != 0) { Dictionary <string, int> securityMap = _importService.SecurityMap(); Dictionary <string, List <SecurityPriceStore> > securityPrices = new Dictionary <string, List <SecurityPriceStore> >(); foreach (PriceImportDataCSV data in _importVM.dgCSVPrices) { if (securityMap.ContainsKey(data.SecuritySymbol)) { SecurityPriceStore price = new SecurityPriceStore { ClosePrice = data.ClosePrice, Date = data.Date, PriceSource = data.PriceSource, SecurityId = securityMap[data.SecuritySymbol] }; if (!securityPrices.ContainsKey(data.SecuritySymbol)) { securityPrices[data.SecuritySymbol] = new List <SecurityPriceStore> { price }; } else { securityPrices[data.SecuritySymbol].Add(price); } } } await _importService.AddImportedPrices(securityPrices); } } catch (Exception e) { MessageBox.Show(e.Message); } }