Ejemplo n.º 1
0
void form_movie_update(char *input) {
    Movie *movie;

    // Antes de tudo, precisamos testar se há algum filme no arquivo
    if (movies_file_is_empty()) {
        printf(EMPTY_ERROR, __FILE__, "filme");
        return;
    }

    printf("\n=======\nMODIFICANDO FILME: \n\n");
    movie = form_movie_select(input);
    // Se não encontrou, mostra mensagem e sai.
    if (movie->id == NON_EXIST) {
        printf(ID_NOT_FOUND_ERROR, __FILE__, "filme");
        free(movie);
        return;
    }
    // Mostra o resultado da pesquisa feita pelo usuário.
    puts_movie_row_list();
    puts_movie(movie);
    // Tem certeza?
    if (!be_sure(input)) {
        printf("Abortando modificacao de filme.\n\n");
        free(movie);
        return;
    }
    // Formulário de edição de campos.
    form_movie(movie, input);
    // Tem certeza?
    if (!be_sure(input)) {
        printf("Abortando modificacao de filme.\n\n");
        free(movie);
        return;
    }

    // Atualização confirmada!
    if (update_movie(movie)) {
        printf("Filme atualizado com sucesso.\n");
    } else {
        printf("Filme nao foi atualizado corretamente!\n");
    }
    printf("\n=======\n");
    free(movie);
}
Ejemplo n.º 2
0
int main()
{
  int admin_mode = 0;
  char buf[4096];
  char welcome[] = "========= Movie Rental Service v0.1 =========";
  char menu[] = "\n1. List movies\n2. Rent movie\n3. Return movie\n4. Admin mode\n5. Exit\n\nChoice: ";
  char admin_menu[] = "\n1. Add movie\n2. Remove movie\n3. Update movie\n4. Quit admin mode\n\nChoice: ";

  printf(welcome);
  initialize();
  printf("=============================================");

  while (1)
  {
    if (admin_mode)
    {
      printf(admin_menu);
      if (readuntil(STDIN, buf, sizeof(buf), '\n') < 0)
        quit();
      switch (buf[0])
      {
        case '1':
          add_movie();
          break;
        case '2':
          remove_movie();
          break;
        case '3':
          update_movie();
          break;
        case '4':
          admin_mode = 0;
          break;
        default:
          printf("[ERROR] Invalid menu. Please select again.\n");
          break;
      }
    }
    else
    {
      printf(menu);
      if (readuntil(STDIN, buf, sizeof(buf), '\n') < 0)
        quit();
      switch (buf[0])
      {
        case '1':
          list_movies();
          break;
        case '2':
          rent_movie();
          break;
        case '3':
          return_movie();
          break;
        case '4':
          admin_mode = login();
          break;
        case '5':
          quit();
          break;
        default:
          printf("[ERROR] Invalid menu. Please select again.\n");
          break;
      }
    }
  }

  return 0;
}