static async Task WriteContractsInDb( DbContextOptions <NakContext> options, List <Contract> contracts) { using (var context = new NakContext(options)) { await context.Contracts.AddRangeAsync(contracts); await context.SaveChangesAsync(); } }
static async Task <List <Contract> > GetContracts(DbContextOptions <NakContext> options) { Console.WriteLine("Получение Contracts..."); var contracts = new List <Contract>(); var excelFile = new Application(); Workbook workbook = excelFile.Workbooks.Open(CONTRACTS_PATH); Worksheet worksheet = workbook.Worksheets[1]; Excel.Range range = worksheet.UsedRange; int rowCount = range.Rows.Count; using (var context = new NakContext(options)) for (int i = 3; i <= rowCount; i++) { var contractDate = ((Excel.Range)worksheet.Cells[i, 5]).Value?.ToString(); string contractorName = ((Excel.Range)worksheet.Cells[i, 6]).Value2?.ToString(); var guidContractor = await context.Contractors .FirstOrDefaultAsync(c => c.ContractorFullName == contractorName); var newContract = new Contract { ContractType = ((Excel.Range)worksheet.Cells[i, 3]).Value2?.ToString(), ContractNumber = ((Excel.Range)worksheet.Cells[i, 4]).Value2?.ToString(), ContractDate = contractDate != null?DateTime.Parse(contractDate) : null, GuidContractor = guidContractor?.Id, ContractorName = contractorName, NumberApartment = ((Excel.Range)worksheet.Cells[i, 10]).Value2?.ToString() }; contracts.Add(newContract); } return(contracts); }