Esempio n. 1
0
        public override void ConcurrencyExceptionSummariesHandler(FaultException <ConcurrencyExceptionOfSummarydxjYbbDT> fault, UpdateDeleteOptions options)
        {
            var errorString = new StringBuilder();

            errorString.Append("Данные были изменены другим пользователем с момента загрузки\n");
            errorString.Append(string.Format("Поле: {0}, значение в БД: {1}, текущее значение: {2}\n\n", "Приход/Расход", fault.Detail.DatabaseValue.CashFlowType, fault.Detail.CurrentValue.CashFlowType));
            errorString.Append(string.Format("Поле: {0}, значение в БД: {1}, текущее значение: {2}\n\n", "Только чтение", fault.Detail.DatabaseValue.ReadOnly, fault.Detail.CurrentValue.ReadOnly));
            errorString.Append(string.Format("Поле: {0}, значение в БД: {1}, текущее значение: {2}\n\n", "Бюджетная статья", fault.Detail.DatabaseValue.BudgetItem.ItemName, fault.Detail.CurrentValue.BudgetItem.ItemName));
            errorString.Append(string.Format("Поле: {0}, значение в БД: {1}, текущее значение: {2}\n\n", "Проект", fault.Detail.DatabaseValue.Project.ProjectName, fault.Detail.CurrentValue.Project.ProjectName));
            errorString.Append(string.Format("Поле: {0}, значение в БД: {1}, текущее значение: {2}\n\n", "Подотчетник", fault.Detail.DatabaseValue.Accountable.AccountableName, fault.Detail.CurrentValue.Accountable.AccountableName));
            errorString.Append(string.Format("Поле: {0}, значение в БД: {1}, текущее значение: {2}\n\n", "Расшифровка", fault.Detail.DatabaseValue.Description, fault.Detail.CurrentValue.Description));
            errorString.Append(string.Format("Поле: {0}, значение в БД: {1}, текущее значение: {2}\n\n", "Сумма, грн.", fault.Detail.DatabaseValue.SummaUAH, fault.Detail.CurrentValue.SummaUAH));
            errorString.Append(string.Format("Поле: {0}, значение в БД: {1}, текущее значение: {2}\n\n", "Сумма, $.", fault.Detail.DatabaseValue.SummaUSD, fault.Detail.CurrentValue.SummaUSD));
            errorString.Append(string.Format("Поле: {0}, значение в БД: {1}, текущее значение: {2}\n\n", "Сумма, ЕВРО.", fault.Detail.DatabaseValue.SummaUSD, fault.Detail.CurrentValue.SummaEuro));
            errorString.Append(string.Format("Поле: {0}, значение в БД: {1}, текущее значение: {2}\n\n", "Дата", fault.Detail.DatabaseValue.SummaryDate, fault.Detail.CurrentValue.SummaryDate));

            errorString.Append(string.Format("Изменение были внесены в {0}\n\n", fault.Detail.DatabaseValue.ActionDate));

            errorString.Append("Изменить значение в базе данных?");
            var dialogResult = MessageBox.Show(errorString.ToString(), "Ошибка изменения данных", MessageBoxButtons.YesNo, MessageBoxIcon.Error);

            CFAPBusinessLogic businessLogic = new CFAPBusinessLogic(this);

            if (dialogResult == DialogResult.Yes)
            {
                if (options == UpdateDeleteOptions.Update)
                {
                    businessLogic.UpdateSummary(fault.Detail.CurrentValue, DbConcurencyUpdateOptions.ClientPriority);
                }

                if (options == UpdateDeleteOptions.Delete)
                {
                    businessLogic.RemoveSummary(fault.Detail.DatabaseValue, DbConcurencyUpdateOptions.ClientPriority);
                }
            }
            else
            {
                businessLogic.UpdateSummary(fault.Detail.DatabaseValue, DbConcurencyUpdateOptions.DatabasePriority);
            }
        }