Esempio n. 1
0
        static async Task WriteContractsInDb(
            DbContextOptions <NakContext> options,
            List <Contract> contracts)
        {
            using (var context = new NakContext(options))
            {
                await context.Contracts.AddRangeAsync(contracts);

                await context.SaveChangesAsync();
            }
        }
Esempio n. 2
0
        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);
        }