コード例 #1
0
 public void CommitUpdate()
 {
     if (IsUpdating)
     {
         State = DataTransactionState.Commit;
         Reset(false);
     }
 }
コード例 #2
0
 public void CancelUpdate()
 {
     if (IsUpdating)
     {
         State = DataTransactionState.Cancel;
         Restore(oldRow);
         Reset();
     }
 }
コード例 #3
0
 public void BeginUpdate(params object[] ids)
 {
     if (!IsUpdating)
     {
         Reset();
         Backup(Row, ref oldRow);
         State = DataTransactionState.Begin;
     }
 }
コード例 #4
0
        public void BeginUpdate(params object[] ids)
        {
            if (IsUpdating)
            {
                return;
            }
            Reset();

            BuildRowTransactions(ref this.rowTransactionMap);
            this.rowTransactionMap.ForEach(pair => pair.Value.BeginUpdate(ids));
            State = DataTransactionState.Begin;
        }
コード例 #5
0
 public void AddError(DataCellErrorType errorType, string columnName)
 {
     string result = null;
     switch (errorType)
     {
         case DataCellErrorType.FieldRequired:
             result = string.Format(InformationMessage.Error_Field_Required, columnName);
             break;
         case DataCellErrorType.FieldNotCurrency:
             result = string.Format(InformationMessage.Error_Field_Not_Currency, columnName);
             break;
         case DataCellErrorType.FieldMustBeDecimal:
             result = string.Format(InformationMessage.Error_Field_Must_Be_Decimal, columnName);
             break;
     }
     Messages.Add(result);
     State = DataTransactionState.Ignored;
 }
コード例 #6
0
        public void CancelUpdate()
        {
            if (IsUpdating)
            {
                State = DataTransactionState.Cancel;
                foreach (var taRow in rowTransactionMap.Values)
                {
                    IEntityRowAttributes rowAttributes = taRow.Row.GetAttributesEntity();
                    EntityTable          registedTable;
                    switch (rowAttributes.Status)
                    {
                    case OPStatus.Add:
                        if (TryGetRegistTable(taRow.Row, out registedTable))
                        {
                            registedTable.Rows.Remove(taRow.Row);
                            taRow.Row.OnPropertyChanged("");    //通知ForeignSetField刪除
                        }
                        break;

                    case OPStatus.Update:
                        taRow.CancelUpdate();
                        break;

                    case OPStatus.Delete:
                        if (TryGetRegistTable(taRow.Row, out registedTable))
                        {
                            taRow.CancelUpdate();
                            registedTable.Rows.Add(taRow.Row);
                        }
                        break;

                    default:
                        break;
                    }
                }
                Reset();
            }
        }