コード例 #1
0
        private void CRUDRate(int type, string range = null)
        {
            AppJournal.Write("Contract", "Open rate - " + (type == 1 ? "New" : SelectedRate.id.ToString()), true);

            string  transactionTxt, procentTxt;
            decimal transaction = 0, procent = 0;
            bool    error = false;

            if (SelectedRatesList != null)
            {
                if (type != 3)
                {
                    /*if(range == null) {
                     *  transactionTxt = await MessagesService.GetInput("Ввод диапазона сумм", "Введите суммы от и до через тире (-):");
                     *  procentTxt = await MessagesService.GetInput("Ввод процента", "Введите процент для заданного диапазона:");
                     * } else {*/
                    transactionTxt = range.Substring(2, range.LastIndexOf(" ") - range.IndexOf(" ")).Replace(" ", "").Replace(".", "");
                    procentTxt     = Percent.ToString();
                    //}

                    if (!string.IsNullOrEmpty(transactionTxt) && !string.IsNullOrEmpty(procentTxt))
                    {
                        try {
                            transactionTxt = transactionTxt.Replace("-", "-");
                            procentTxt     = procentTxt.Replace(".", ",");
                            transaction    = Convert.ToDecimal(string.IsNullOrEmpty(range) ? transactionTxt.Substring(0, transactionTxt.IndexOf("-")) : transactionTxt);
                            procent        = Convert.ToDecimal(procentTxt);
                        } catch (Exception) { error = true; }
                    }
                    else
                    {
                        error = true;
                    }
                }

                switch (type)
                {
                case 1:     // Create
                    if (!error)
                    {
                        // Fill model
                        var rate = new RateEF()
                        {
                            transaction = transaction,
                            percent     = procent,
                            rateslistid = SelectedRatesList.id
                        };

                        // Save changes
                        if (DataBaseClient.CreateRate(rate) == 0)
                        {
                            MessagesService.Show("Создание тарифных данных", "Во время создания произошла ошибка");
                        }
                        else
                        {
                            AppJournal.Write("Contract", "Create rate error", true);
                        }
                    }
                    break;

                case 2:     // Update
                    if (!error && SelectedRate != null)
                    {
                        if (!DataBaseClient.UpdateRate(SelectedRate.id, transaction, procent))
                        {
                            MessagesService.Show("Обновление тарифных данных", "Во время обновления произошла ошибка");
                        }
                    }
                    else
                    {
                        MessagesService.Show("Обновление тарифных данных", "При обновлении произошла ошибка.\nВозможно не были выбраны данные");
                        AppJournal.Write("Contract", "Update rate error", true);
                    }
                    break;

                case 3:     // Delete
                    if (SelectedRate != null)
                    {
                        if (!DataBaseClient.DeleteRate(SelectedRate.id))
                        {
                            MessagesService.Show("Удаление тарифных данных", "Во время удаления произошла ошибка");
                            AppJournal.Write("Contract", "Delete rate error", true);
                        }
                    }
                    else
                    {
                        MessagesService.Show("Удаление тарифных данных", "Не выбраны тарифные данные");
                    }
                    break;
                }

                UpdateRateView();
            }
            else
            {
                MessagesService.Show("Тарифные данные", "Не выбрана тарифная сетка");
            }
        }