private void ProcessingTask(object filePath) { CsvParser csvParser = new CsvParser((string)filePath, Delimiter); DAL.IRepository <DAL.Models.Client> clientRepository = new DAL.ClientRepository(); DAL.IRepository <DAL.Models.Manager> managerRepository = new DAL.ManagerRepository(); DAL.IRepository <DAL.Models.Goods> goodsRepository = new DAL.GoodsRepository(); DAL.IRepository <DAL.Models.Sales> salesRepository = new DAL.SalesRepository(); var managerSecondName = Path.GetFileName((string)filePath).Split(new char[] { '_' })[0]; var manager = managerRepository.Items.FirstOrDefault(x => x.SecondName.ToLower() == managerSecondName.Trim().ToLower()); if (manager == null) { return; } var rows = csvParser.GetRecords().Select(r => new ImportedDataRow() { Date = DateTime.Parse(r[0]), Client = r[1], Goods = r[2], Total = double.Parse(r[3]) }); foreach (var r in rows) { lock (syncObj) { var c = clientRepository.Items.FirstOrDefault(x => x.Name.ToLower() == r.Client.Trim().ToLower()); var g = goodsRepository.Items.FirstOrDefault(x => x.Name.ToLower() == r.Goods.Trim().ToLower()); if (c == null) { clientRepository.Add(new DAL.Models.Client() { Name = r.Client }); clientRepository.SaveChanges(); } if (g == null) { goodsRepository.Add(new DAL.Models.Goods() { Name = r.Goods }); goodsRepository.SaveChanges(); } salesRepository.Add(new DAL.Models.Sales() { Date = r.Date, Manager = manager, Client = clientRepository.Items.FirstOrDefault(x => x.Name == r.Client), Goodds = goodsRepository.Items.FirstOrDefault(x => x.Name == r.Goods), Cost = r.Total }); salesRepository.SaveChanges(); } } }
private void ProcessingTask() { FileStream stream = new FileStream(FilePath, FileMode.Open); CsvParser csvParser = new CsvParser(FilePath, Delimiter); DAL.IRepository <DAL.Models.Client> clientRepository = new DAL.ClientRepository(); DAL.IRepository <DAL.Models.Manager> managerRepository = new DAL.ManagerRepository(); DAL.IRepository <DAL.Models.Goods> goodsRepository = new DAL.GoodsRepository(); DAL.IRepository <DAL.Models.Sales> salesRepository = new DAL.SalesRepository(); var rows = csvParser.GetRecords().Select(r => new ImportedDataRow() { Date = DateTime.Parse(r[0]), Client = r[1], Goods = r[2], Total = double.Parse(r[3]) }); }