Пример #1
0
        /// <summary>
        ///     Função executada sempre que o botão de Criação/Edição de Despesa é clicado.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ButtonCriarEditar_OnClick(object sender, RoutedEventArgs e)
        {
            bool statusCreateEdit = false;

            if (TextBoxNome.Text == "" || TextBoxDescricao.Text == "" || DatePickerData.Text == "" ||
                TextBoxValorEur.Text == "" && TextBoxValorUsd.Text == "")
            {
                MessageBox.Show(
                    "Por favor preencha todos os campos. No caso do Valor da Despesa, preencha apenas um campo.",
                    "Alerta");
            }
            else if (TextBoxId.Text == "")
            {
                // Se for para criar uma Despesa

                decimal valEur, valUsd;
                if (TextBoxValorEur.Text == "")
                {
                    // Se o campo do Valor em € não estiver preenchido
                    valUsd = decimal.Parse(TextBoxValorUsd.Text);
                    valEur = valUsd * DolarEEuro;
                }
                else if (TextBoxValorUsd.Text == "")
                {
                    // Se o campo do Valor em $ não estiver preenchido
                    valEur = decimal.Parse(TextBoxValorEur.Text);
                    valUsd = valEur * EuroEDolar;
                }
                else
                {
                    // Se os dois campos forem preenchidos
                    valEur = decimal.Parse(TextBoxValorEur.Text);
                    valUsd = decimal.Parse(TextBoxValorUsd.Text);
                }

                statusCreateEdit = SoapClient.AddExpense(TextBoxNome.Text, TextBoxDescricao.Text,
                                                         DateTime.Parse(DatePickerData.Text), valEur, valUsd, UtilizadorLigado.EmailSha);

                if (statusCreateEdit)
                {
                    Despesas.Add(new Expense(Api.GetLastIdFromTable("despesas").ToString(), TextBoxNome.Text,
                                             TextBoxDescricao.Text, DateTime.Parse(DatePickerData.Text), valEur, valUsd,
                                             UtilizadorLigado.EmailSha));
                    TotalEur += valEur;
                    TotalUsd += valUsd;
                    if (UtilizadorLigado.MoedaPadrao == "EUR")
                    {
                        LabelTotal.Content = TotalEur + "€";
                    }
                    else
                    {
                        LabelTotal.Content = TotalUsd + "$";
                    }
                }
            }
            else
            {
                // Se for para atualizar uma Despesa

                decimal valEur, valUsd;
                if (TextBoxValorEur.Text == "")
                {
                    // Se o campo do Valor em € não estiver preenchido
                    valUsd = decimal.Parse(TextBoxValorUsd.Text);
                    valEur = valUsd * DolarEEuro;
                }
                else if (TextBoxValorUsd.Text == "")
                {
                    // Se o campo do Valor em $ não estiver preenchido
                    valEur = decimal.Parse(TextBoxValorEur.Text);
                    valUsd = valEur * EuroEDolar;
                }
                else
                {
                    // Se os dois campos forem preenchidos
                    valEur = decimal.Parse(TextBoxValorEur.Text);
                    valUsd = decimal.Parse(TextBoxValorUsd.Text);
                }

                statusCreateEdit = SoapClient.UpdateExpense(TextBoxId.Text, TextBoxNome.Text, TextBoxDescricao.Text,
                                                            DateTime.Parse(DatePickerData.Text), valEur, valUsd, UtilizadorLigado.EmailSha);

                Expense despesaEditar = Despesas.FirstOrDefault(d => d.Id == TextBoxId.Text);
                if (despesaEditar != null && statusCreateEdit)
                {
                    Despesas.Remove(despesaEditar);
                    TotalEur -= despesaEditar.ValEur;
                    TotalUsd -= despesaEditar.ValUsd;
                    Despesas.Add(new Expense(TextBoxId.Text, TextBoxNome.Text, TextBoxDescricao.Text,
                                             DateTime.Parse(DatePickerData.Text), valEur, valUsd, UtilizadorLigado.EmailSha));
                    TotalEur += valEur;
                    TotalUsd += valUsd;
                    if (UtilizadorLigado.MoedaPadrao == "EUR")
                    {
                        LabelTotal.Content = TotalEur + "€";
                    }
                    else
                    {
                        LabelTotal.Content = TotalUsd + "$";
                    }
                }
            }

            // Se não criou/editou com sucesso sai
            if (!statusCreateEdit)
            {
                return;
            }

            TextBoxId.Text        = "";
            TextBoxNome.Text      = "";
            TextBoxDescricao.Text = "";
            DatePickerData.Text   = "";
            TextBoxValorEur.Text  = "";
            TextBoxValorUsd.Text  = "";
        }