Skip to content

Commit 7d04d86

Browse files
committed
Fix bug di ricerca artisti, album; Fix bug di cancellazione playlist, artisti, album; La scelta di login e registrazione ora viene ripetuta dopo 3 tentativi sbagliati
1 parent 00e442a commit 7d04d86

File tree

4 files changed

+34
-65
lines changed

4 files changed

+34
-65
lines changed

src/gestori/GestorePlaylist.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ void cancellarePlaylistGuidato(database *db) {
428428
if (ottenerePosDaID(db, 4,id)==-1) {
429429
printf("\nNessuna playlist trovata, riprovare");
430430
esito=-1;
431-
} else if (controllareSePlaylistUtente(db, id, db->utenteCorrente)==false||!controllareSeAdmin(db)==false) {
431+
} else if (controllareSePlaylistUtente(db, id, db->utenteCorrente)==false||!controllareSeAdmin(db)) {
432432
printf("\nL'identificativo che hai dato punta ad una playlist che non ti appartiene, riprova.");
433433
esito=-1;
434434
} else {

src/gestori/GestoreUtenti.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ void infoUtenteConnesso(database *db) {
5656

5757
void loginUtente(database *db) {
5858
printf("\nEsecuzione Login ad Ampere");
59-
int controllo=0, id=0;
59+
int controllo=0, id=0, tentativi=0;
6060
char *username;
6161
char *password;
6262
while (controllo!=-1) {
@@ -73,10 +73,12 @@ void loginUtente(database *db) {
7373
attenzione(2);
7474
} else if (id!=0) {
7575
db->utenteCorrente = id;
76+
db->ultimoEsito = 0;
7677
printf("\n"C_VERDE"Accesso consentito."C_RESET" Bentornato su Ampere, %s.", db->utente[ottenerePosDaID(db, -1, db->utenteCorrente)].username);
7778
controllo=-1;
7879
} else {
7980
attenzione(1);
81+
tentativi++;
8082
}
8183
if (username!=NULL) {
8284
free(username);
@@ -86,6 +88,10 @@ void loginUtente(database *db) {
8688
free(password);
8789
password=NULL;
8890
}
91+
if (tentativi>2) {
92+
controllo=-1;
93+
db->ultimoEsito = -1;
94+
}
8995
}
9096

9197
}
@@ -103,7 +109,6 @@ int controllareDatiUtente(database *db, char username[], char password[]) {
103109
}
104110

105111
void registrareUtente(database *db) {
106-
107112
char scelta='a';
108113
int ruolo=-1;
109114
bool admin = false;

src/ricerca/MotoreRicerca.c

Lines changed: 13 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -321,67 +321,31 @@ int ricercareInfo(database *db, int modalita) {
321321

322322
printf("\n[Premi invio per saltare] Inserisci il nome dell'artista da ricercare: ");
323323
nome = inputStringa(MAX_MEDIO,nome);
324+
if (comparareStringhe(nome, "N/A")==0){
325+
strcpy(nome, "unknown");
326+
}
324327
printf("\n[Premi invio per saltare] Inserisci il cognome dell'artista da ricercare: ");
325328
cognome = inputStringa(MAX_MEDIO,cognome);
329+
if (comparareStringhe(cognome, "N/A")==0){
330+
strcpy(cognome, "unknown");
331+
}
326332
printf("\n[Premi invio per saltare] Inserisci il nome d'arte dell'artista da ricercare: ");
327333
nomeArte = inputStringa(MAX_MEDIO,nomeArte);
334+
if (comparareStringhe(nomeArte, "N/A")==0){
335+
strcpy(nomeArte, "unknown");
336+
}
328337
int i=0, n=contareNelDatabase(db,2);
329338
printf("\nDi seguito i risultati della ricerca:");
330339
while (i<n) {
331340
if (comparareStringheParziale(db->artista[i].nome,nome)
332-
&&comparareStringheParziale(db->artista[i].cognome, cognome)
333-
&&comparareStringheParziale(db->artista[i].nomeArte, nomeArte)) {
341+
||comparareStringheParziale(db->artista[i].cognome, cognome)
342+
||comparareStringheParziale(db->artista[i].nomeArte, nomeArte)) {
334343
printf("\n");
335344
mostrareSingoloArtista(db, db->artista[i].id);
336345
esiste=1;
337346
}
338347
i++;
339348
}
340-
if(esiste != 1){
341-
342-
//Sistemare ricerche nulle
343-
if (comparareStringhe(nome, "N/A")==0){
344-
strcpy(nome, "unknown");
345-
}
346-
if (comparareStringhe(cognome, "N/A")==0){
347-
strcpy(cognome, "unknown");
348-
}
349-
if (comparareStringhe(nomeArte, "N/A")==0){
350-
strcpy(nomeArte, "unknown");
351-
}
352-
353-
printf("\nNon e' stato trovato nessun artista che rispetti interamente i criteri cercati.");
354-
printf("\nArtisti con nome simile:");
355-
i=0;
356-
while (i<n) {
357-
if (comparareStringheParziale(db->artista[i].nome,nome)) {
358-
printf("\n");
359-
mostrareSingoloArtista(db, db->artista[i].id);
360-
esiste=1;
361-
}
362-
i++;
363-
}
364-
printf("\nArtisti con cognome simile:");
365-
i=0;
366-
while (i<n) {
367-
if (comparareStringheParziale(db->artista[i].cognome,cognome)) {
368-
printf("\n");
369-
mostrareSingoloArtista(db, db->artista[i].id);
370-
esiste=1;
371-
}
372-
i++;
373-
}
374-
printf("\nArtisti con nome d'arte simile:");
375-
i=0;
376-
while (i<n) {
377-
if (comparareStringheParziale(db->artista[i].nomeArte,nomeArte)) {
378-
printf("\n");
379-
mostrareSingoloArtista(db, db->artista[i].id);
380-
esiste=1;
381-
}
382-
i++;
383-
}
384-
}
385349
if (nome!=NULL) {
386350
free(nome);
387351
nome=NULL;
@@ -396,17 +360,14 @@ int ricercareInfo(database *db, int modalita) {
396360
}
397361
} else if (modalita==1) {
398362
char *titolo = calloc(MAX_MEDIO, sizeof(char));
399-
int anno=0;
363+
int anno=-1;
400364
printf("\n[Premi invio per saltare] Inserisci il titolo dell'album da ricercare: ");
401365
titolo = inputStringa(MAX_MEDIO,titolo);
402366
if (comparareStringhe(titolo, "N/A")==0)
403367
titolo = "unknown";
404-
while(anno<1950) {
368+
while(anno<0) {
405369
printf("\n[0 per saltare] Inserisci l'anno di uscita dell'album da ricercare: ");
406370
anno = inputNumero();
407-
if (anno==0) {
408-
anno = 9999;
409-
}
410371
}
411372
int i=0, n=contareNelDatabase(db,1);
412373
printf("\nDi seguito i risultati della ricerca:");

src/sys/Menu.c

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,19 @@
2626
#include "Messaggi.h"
2727

2828
void menuLogin(database *db) {
29-
int scelta=-1;
30-
while (scelta<0||scelta>1) {
31-
printf("\nDesideri effettuare: il "C_VERDE"Login[0]"C_RESET" oppure "C_GIALLO"Registrarti[1]"C_RESET" ad Ampere? ");
32-
scelta = inputNumero();
33-
}
34-
if (scelta==0) {
35-
loginUtente(db);
36-
} else {
37-
registrareUtente(db);
38-
}
29+
int scelta;
30+
do {
31+
scelta=-1;
32+
while (scelta<0||scelta>1) {
33+
printf("\nDesideri effettuare: il "C_VERDE"Login[0]"C_RESET" oppure "C_GIALLO"Registrarti[1]"C_RESET" ad Ampere? ");
34+
scelta = inputNumero();
35+
}
36+
if (scelta==0) {
37+
loginUtente(db);
38+
} else {
39+
registrareUtente(db);
40+
}
41+
} while (db->ultimoEsito==-1);
3942

4043
}
4144

0 commit comments

Comments
 (0)