// Tratamento do evento de criação de uma nova nota de crédito vindo da CreditBankMenuView. private async void CreditBankMenurView_APICreateCredinote(float amount) { try { // Comunicação com a API, de forma a criar uma noca nota de crédito com o amount referido pelo cliente com o id de sessão atual. ResponseCreditNotePost rcnp = await APIClientCommunication.PostCreateCreditNote(amount, Program.AuthUser.SessionID); if (rcnp.status.Equals("error")) { // No caso da resposta do pedido à API ser igual a "error", apresenta-se uma mensagem na view CreditBankMenurView a informar o sucedido. Program.CreditBankMenurView.UnableToCreateCreditNote(); } else { // enviar para a view do menu do banco de créditos para que possa apresentar todas as credirnotes numa lista Program.CreditBankMenurView.AddCreditNoteRowToTable(rcnp.data); } } catch (JsonException jsonEx) { Program.CreditBankMenurView.ShowMessageBox("Unable to create a credit note on API due to json parse exception:\n" + jsonEx + "\nCreditBankController: CreditBankMenurView_APICreateCredinote"); } catch (ArgumentNullException nullEx) { Program.CreditBankMenurView.ShowMessageBox("Unable to create a credit note on API due to null exception:\n" + nullEx + "\nCreditBankController: CreditBankMenurView_APICreateCredinote"); } catch (HttpRequestException httpEx) { Program.CreditBankMenurView.ShowMessageBox("Unable to create a credit note on API due to Http request exception:\n" + httpEx + "\nCreditBankController: CreditBankMenurView_APICreateCredinote"); } }
// Popular a view CreditBantMenuView com os dados referentes ao utilizador logado. private async void CreditBankMenurView_APIGetDataOnLoadRequest(int typeOfData) { switch (typeOfData) { case 1: // Obtem a parir da api o utilizador atual (através da sessionId) juntamente com as notas de crédito. try { Program.CreditBankMenurView.PopulateUserData(await APIClientCommunication.GetUserBySessionId(Program.AuthUser.SessionID)); } catch (JsonException jsonEx) { Program.CreditBankMenurView.ShowMessageBox("Unable to load data (user and credit notes) from API due to json parse exception:\n" + jsonEx + "\nCreditBankController: CreditBankMenurView_APIGetDataOnLoadRequest"); return; } catch (ArgumentNullException nullEx) { Program.CreditBankMenurView.ShowMessageBox("Unable to load data (user and credit notes) from API due to null exception:\n" + nullEx + "\nCreditBankController: CreditBankMenurView_APIGetDataOnLoadRequest"); return; } catch (HttpRequestException httpEx) { Program.CreditBankMenurView.ShowMessageBox("Unable to load data (user and credit notes) from API due to Http request exception:\n" + httpEx + "\nCreditBankController: CreditBankMenurView_APIGetDataOnLoadRequest"); return; } break; case 3: // Transações associadas ao utilizador atual. try { Program.CreditBankMenurView.PopulateHistoricTable(await APIClientCommunication.GetTransactionsBySessionId(Program.AuthUser.SessionID)); } catch (JsonException jsonEx) { Program.CreditBankMenurView.ShowMessageBox("Unable to load data (transactions) from API due to json parse exception:\n" + jsonEx + "\nCreditBankController: CreditBankMenurView_APIGetDataOnLoadRequest"); return; } catch (ArgumentNullException nullEx) { Program.CreditBankMenurView.ShowMessageBox("Unable to load data (transactions) from API due to null exception:\n" + nullEx + "\nCreditBankController: CreditBankMenurView_APIGetDataOnLoadRequest"); return; } catch (HttpRequestException httpEx) { Program.CreditBankMenurView.ShowMessageBox("Unable to load data (transactions) from API due to Http request exception:\n" + httpEx + "\nCreditBankController: CreditBankMenurView_APIGetDataOnLoadRequest"); return; } break; } }