public static HSSFWorkbook CycleInscrieri(CadSysContext context, string[] columnNames, string ruleSet) { var wbk = new HSSFWorkbook(); var sheet = wbk.CreateSheet("Sheet 1"); var validatorInscriereDetaliu = new InscriereDetaliuValidator(); var validatorInscriereAct = new InscriereActValidator(); var validatorInscriereProprietar = new InscriereProprietarValidator(); var validatorInscriereImobil = new InscriereImobilValidator(); var header = sheet.CreateRow(0); for (var i = 0; i < columnNames.Length; i++) { var cell = header.CreateCell(i); cell.SetCellValue(columnNames[i]); } foreach (var x in context.InscrieriDetaliu .Include(y => y.InscrieriActe) .ThenInclude(z => z.ActProprietate) .Include(y => y.InscrieriImobile) .ThenInclude(z => z.Imobil) .ThenInclude(i => i.Parcele) .Include(y => y.InscrieriProprietari) .ThenInclude(z => z.Proprietar)) { ExportInscrieri(sheet, columnNames, x, validatorInscriereDetaliu, validatorInscriereAct, validatorInscriereImobil, validatorInscriereProprietar, ruleSet); } return(wbk); }
static void ExportInscrieri(ISheet sheet, string[] columnNames, InscriereDetaliu inscriereD, InscriereDetaliuValidator iDValidator, InscriereActValidator iActValidator, InscriereImobilValidator iImobilValidator, InscriereProprietarValidator iPropValidator, string ruleSet) { var xPorts = new List <OutputInscriereDetaliu>(); xPorts.FromPOCO(inscriereD); xPorts.ForEach(excelDTO => { var row = sheet.CreateRow(excelDTO.RowIndex); if (excelDTO.IndexAct.HasValue) { var inscriereAct = inscriereD.InscrieriActe.FirstOrDefault(y => y.Index == excelDTO.IndexAct.Value); if (inscriereAct != null) { writeRow(row, columnNames, excelDTO, true, iActValidator.Validate(inscriereAct, ruleSet: ruleSet)); } } if (excelDTO.IndexParcela.HasValue) { var inscriereParcela = inscriereD.InscrieriImobile.FirstOrDefault(y => y.Index == excelDTO.IndexParcela.Value); if (inscriereParcela != null) { writeRow(row, columnNames, excelDTO, true, iImobilValidator.Validate(inscriereParcela, ruleSet: ruleSet)); } } if (excelDTO.IndexProprietar.HasValue) { var inscriereProprietar = inscriereD.InscrieriProprietari.FirstOrDefault(y => y.Index == excelDTO.IndexProprietar.Value); if (inscriereProprietar != null) { writeRow(row, columnNames, excelDTO, true, iPropValidator.Validate(inscriereProprietar, ruleSet: ruleSet)); } } }); //validarea de Inscriere Detaliu var anotherRow = sheet.GetRow(inscriereD.ExcelRow) ?? sheet.CreateRow(inscriereD.ExcelRow); writeRow(anotherRow, columnNames, null, false, iDValidator.Validate(inscriereD, ruleSet: ruleSet)); //lista de outputinscriereD trecuta printr-un writerow special care sa ia inscrierile de la fiecare dintre cei 3 indecsi, sa le valideze obiectele si sa le scrie in icselß }