diff --git a/src/planner.c b/src/planner.c index dc0c23a..1684d3b 100644 --- a/src/planner.c +++ b/src/planner.c @@ -270,6 +270,17 @@ llist *genPlan(llist *head, time_t timeAvail) { return events_ll; } +const char *iCalHeader = "BEGIN:VCALENDAR\r\n" + "VERSION:2.0\r\n" + "PRODID:-//hacksw/handcal//NONSGML v1.0//EN\r\n"; +const char *iCalEvent = "BEGIN:VEVENT\r\n" + "UID:%s%d\r\n" + "DTSTAMP:%s\r\n" + "DTSTART:%s\r\n" + "DTEND:%s\r\n" + "SUMMARY:%s\r\n" + "END:VEVENT\r\n"; + int exportiCal(llist *events_ll) { llist *ev_ll = events_ll; diff --git a/src/ui.c b/src/ui.c index 25d98c1..f1797aa 100644 --- a/src/ui.c +++ b/src/ui.c @@ -13,6 +13,8 @@ #include #include +const char *dbName = "db.csv"; + int main(void) { char taskname[256]; // taskName Buffer int taskcreation_date = 0; @@ -20,14 +22,16 @@ int main(void) { int taskpriority = 0; int taskspare = 0; - llist *list = NULL; + llist *listT = NULL; + llist *listE = NULL; int choice = 0, i = 0; do { printf(" -1- Neues Fach eingeben\n"); printf(" -2- Verfuegbare Zeit eingeben\n"); printf(" -3- Alle vorhandenen Faecher aufliesten\n"); printf(" -4- Kalenderlink ausgeben\n"); - printf(" -5- Planer beenden\n"); + printf(" -5- Faecher Importieren\n"); + printf(" -6- Planer beenden\n"); printf(" Wähle die gewünschte Option aus\n"); if (scanf("%d", &choice) != 1) { printf("Falsche Eingabe\n"); @@ -57,20 +61,20 @@ int main(void) { return -1; } - printf(" Wie viel Zeit habe Sie für dieses Fach: \n"); - if (scanf("%d", &taskspare) != 1) { - printf("Ungültige Eingabe.\n"); - return -1; - } + // printf(" Wie viel Zeit habe Sie für dieses Fach: \n"); + // if (scanf("%d", &taskspare) != 1) { + // printf("Ungültige Eingabe.\n"); + // return -1; + // } // create deadline timestamp lc.tm_yday += taskdeadline_date; time_t deadline = mktime(&lc); Task *newT = newTask(taskname, now, deadline, taskpriority, 0); - if (list == NULL) { - list = llistNew(newT, cmpTaskN); + if (listT == NULL) { + listT = llistNew(newT, cmpTaskN); } else { - llistAppend(list, newT); + llistAppend(listT, newT); } break; @@ -79,8 +83,9 @@ int main(void) { "Geben Sie die zur verfuegung stehende Zeit für die Fächer an: \n"); scanf("%d", &taskspare); // if list exists use it to generate plan - if (list != NULL) { - genPlan(list, taskspare); + if (listT != NULL) { + listE = genPlan(listT, taskspare); + write_linkedlist_to_csv(listT, dbName); } else { printf("list is empty!"); return -1; @@ -88,10 +93,10 @@ int main(void) { break; case 3: - if (list == NULL) { + if (listT == NULL) { printf("Die Liste ist leer"); } else { - llistPrintT(list); + llistPrintT(listT); // llist *iterator = list; // while (iterator != NULL) { // Task *currentTask = (Task *)(iterator->data); // Cast zu Task @@ -123,13 +128,28 @@ int main(void) { // } // break; case 4: - printf( - "Geben Sie die zur verfuegung stehende Zeit für die Fächer an: \n"); - scanf("%d", &taskspare); + if (listE == NULL || taskspare <= 0) { + printf("vor Export erst task list erstellen, dann verfuegbare zeit " + "eingeben!\n"); + break; + } + exportiCal(listE); + // printf( + // "Geben Sie die zur verfuegung stehende Zeit für die Fächer an: + // \n"); + // scanf("%d", &taskspare); break; - case 5: + listT = write_csv_to_llist(dbName); + break; + + case 6: + printf("Goodbye!\n"); + if (listE != NULL) + llistFreeE(listE); + if (listT != NULL) + llistPrintT(listT); // if (task == NULL) {//task? // printf("Die Liste ist leer"); // } else { @@ -142,9 +162,8 @@ int main(void) { // iterator = iterator->next; // Gehe zum nächsten Listenelement // } // } - break; + return EXIT_SUCCESS; // case 4: iCAl();break; } - } while (choice != 5); - return EXIT_SUCCESS; + } while (choice < 6); }