Come creare una Rubrica Telefonica in C# – Lezione 15 – Caricare e rimuovere la foto profilo del contatto

Caricare e Rimuovere la foto profilo del contat

Caricare e Rimuovere la foto profilo del contatto: Questa lezione 15, anche se ha un titolo diverso è la parte 2 della lezione precedente (Aggiungere la foto profilo del contatto).

Ho preferito assegnare un titolo diverso, che descrive più dettagliatamente il contenuto della lezione.

In questo video andremo a correggere alcuni errori e mancanze del video precedente.

Per prima cosa infatti andremo ad assegnare l’estensione corretta alle foto del profilo, infatti in precedenza indipendentemente dalla vera estensione, le abbiamo salvate in jpg.

Ora invece andremo a vedere l’estensione reale ed utilizzeremo quella.

Caricare la foto profilo del contatto

Nella lezione precedente abbiamo salvato la foto profilo all’interno del database, con relativo link nel file xml.

In questa lezione invece andremo a caricare la foto salvata in precedenza e mostrarla nella scheda del contatto.

Per poterlo fare andremo ad effettuare alcune modifiche alla struttura del programma.

Come prima cosa andremo ad aggiungere una nuova colonna alla nostra tabella.

Questa colonna conterrà il link alla foto profilo, ma visto che non vogliamo che sia visualizzata, la imposteremo come non visibile.

Impostando le colonne come non visibili, abbiamo la possibilità di assegnare loro un contenuto, ma questo contenuto sarà nascosto all’utente, e sono molto utili nel caso in cui volessimo assegnare delle informazioni nascoste ad ogni riga della tabella.

XmlNode nodoFoto = DocumentoXml.DocumentElement.SelectSingleNode("/contatto/percorso_foto");
                string percorso_foto = "";
                if (nodoFoto == null)
                {
                    percorso_foto = "";
                }
                else {
                    percorso_foto = nodoFoto.InnerText;
                }

In fase di caricamento dei dati dal file xml, dobbiamo necessariamente verificare che il nodo percorso_foto esista.

Questo perchè abbiamo aggiunto le foto solo in un secondo momento, quindi tutti i contatti precedenti non hanno quel nodo nel file xml.

Ovviamente caricando normalmente i dati e non trovando quel nodo il nostro software crasherà.

Inserendo invece questo controllo, nel caso in cui non dovesse esistere, andremo ad inserire una stringa vuota.

Rimuovere la foto del profilo del contatto

Dopo aver inserito e visualizzato la foto profilo del contatto, dobbiamo dare all’utente anche la possibilità di rimuoverla.

Per fare ciò possiamo fare in diversi modi.

Quello utilizzato nel video è: controllare l’id del contatto, andare quindi nella cartella pics e cercare file .jpg e file .png con quell’id.

Un metodo più rapido (al quale non ho pensato in fase di creazione video, ma che magari mostrerò nel prossimo video) è quello di prendere il percorso direttamente dalla tabella (avevamo creato una nuova colonna con il percorso della foto, che quindi possiamo utilizzare in questo caso.

Una terza alternativa è quella di scansionare l’intera cartella delle foto con un getfiles, e cercare poi le foto con quell’id.

Questo terzo metodo però in caso di database molto grandi può rallentare la rimozione del contatto.

Caricare e Rimuovere la foto profilo del contatto

Con questa lezione, abbiamo concluso la gestione della foto profilo dei contatti, e ci stiamo avvicinando alla fine del corso.

Al momento ci sono alcuni suggerimenti (che potete vedere nel video al minuto 29.39) che potrebbero essere implementati.

Non aggiungerò tutti i consigli, se avete delle preferenze scrivete nei commenti quali di quei suggerimenti volete vedere.

author avatar
Claudio Masci
Sono innanzitutto un appassionato di informatica e tecnologia in generale. Lavoro in ambito informatico da circa 16 anni, spaziando in diversi campi, andando dalla programmazione web, allo sviluppo di software, dalla grafica alla modellazione 3d ed al video editing, ho sempre voluto approfondire ogni aspetto e questo mi ha permesso di lavorare in diversi ambiti informatici.