private void DoWork(object sender, DoWorkEventArgs e) { var splitted = new List <string>(); var fileList = new SkuService().GetCSV("https://www.cordners.co.uk/exportcsv/"); string[] tempStr; tempStr = fileList.Split('\t'); var skus = new List <string>(); foreach (var item in tempStr) { if (!string.IsNullOrEmpty(item)) { if (item.Contains('\n') && item.Split('\n')[0].Length > 6) { var sku = item.Split('\n')[0].Substring(0, 6); if (!skus.Contains(sku)) { splitted.Add(sku); skus.Add(sku); } } } } var skuService = new SkuService(); skuService.DeleteDescriptions(); var count = 0; var check = splitted.Count / 100; var loop = 0; for (var i = 0; i < splitted.Count; i++) { if (check == count) { loop++; worker.ReportProgress(loop); count = 0; } else { count++; } Insert(splitted[i], SqlQueries.InsertSKU); } var things = new SkuService().GetStockSync(); var online = new SkuService().GetOnlineStockSync(); var missing = new SkuService().GetMissingStockSync(online, things); Things = new ObservableCollection <SpecailOrders>(missing.OrderBy(x => x.MasterSupplier)); worker.ReportProgress(100); }