Exemplo n.º 1
0
        private List<EditorCliente> ObtenerClientesDeExcel(Stream stream, SelectorColumnasExcelCliente columnas)
        {
            var workbook = new XLWorkbook(stream);
            var worksheet = workbook.Worksheets.First();

            var firstRow = worksheet.FirstRowUsed();
            var rowUsed = firstRow.RowUsed();
            rowUsed = rowUsed.RowBelow();

            var clientes = new List<EditorCliente>();                

            while (!rowUsed.Cell(columnas.LetraColumnaNombreOEmpresa).IsEmpty())
            {
                var cliente = new EditorCliente {
                    NombreOEmpresa = rowUsed.Cell(columnas.LetraColumnaNombreOEmpresa).GetString(),
                    NumeroIdentificacionFiscal = rowUsed.Cell(columnas.LetraColumnaNumeroIdentificacionFiscal).GetString(),
                    NombreComercial = string.IsNullOrEmpty(columnas.LetraColumnaNombreComercial)  ? null : rowUsed.Cell(columnas.LetraColumnaNombreComercial).GetString(),
                    PersonaContacto = string.IsNullOrEmpty(columnas.LetraColumnaPersonaContacto) ? null : rowUsed.Cell(columnas.LetraColumnaPersonaContacto).GetString(),
                    Email = string.IsNullOrEmpty(columnas.LetraColumnaEmail) ? null : rowUsed.Cell(columnas.LetraColumnaEmail).GetString(),
                    Direccion1 = string.IsNullOrEmpty(columnas.LetraColumnaDireccion) ? null : rowUsed.Cell(columnas.LetraColumnaDireccion).GetString(),
                    Localidad = string.IsNullOrEmpty(columnas.LetraColumnaLocalidad) ? null : rowUsed.Cell(columnas.LetraColumnaLocalidad).GetString(),
                    Provincia = string.IsNullOrEmpty(columnas.LetraColumnaProvincia) ? null : rowUsed.Cell(columnas.LetraColumnaProvincia).GetString(),
                    CodigoPostal = string.IsNullOrEmpty(columnas.LetraColumnaCodigoPostal) ? null : rowUsed.Cell(columnas.LetraColumnaCodigoPostal).GetString(),
                    ComentarioInterno = string.IsNullOrEmpty(columnas.LetraColumnaComentarioInterno) ? null : rowUsed.Cell(columnas.LetraColumnaComentarioInterno).GetString()
                };

                if(!clientes.Any(m=> m.NombreOEmpresa == cliente.NombreOEmpresa|| m.NumeroIdentificacionFiscal == cliente.NumeroIdentificacionFiscal))
                    clientes.Add(cliente);

                rowUsed = rowUsed.RowBelow();
            }

            return clientes.Distinct().ToList();
        }
Exemplo n.º 2
0
        public async Task ImportarClientesDeExcel(Stream stream, SelectorColumnasExcelCliente columnas)
        {
            var clientesExistentes = await _contexto.Clientes.ToListAsync();

            var clientesExcel = ObtenerClientesDeExcel(stream, columnas);

            var clientesAImportar = QuitarClientesDuplicados(clientesExistentes, clientesExcel);

            await CrearClientesAsync(clientesAImportar);
        }