diff --git a/Program.cs b/Program.cs index 04c0913..8b0e582 100644 --- a/Program.cs +++ b/Program.cs @@ -32,6 +32,15 @@ namespace BinaryDad.AggregateDal #endregion + #region Update attempt + + newAttempt.ClientFirstName = "Rick"; + newAttempt.ClientLastName = "Martini"; + + settlementAttemptDataAccess.UpdateAttempt(newAttempt); + + #endregion + #region Get attempt var attempt = settlementAttemptDataAccess.GetAttempt(1234); diff --git a/SettlementAttempt/EfSettlementAttemptDataAccess.cs b/SettlementAttempt/EfSettlementAttemptDataAccess.cs index 264f765..8340d4e 100644 --- a/SettlementAttempt/EfSettlementAttemptDataAccess.cs +++ b/SettlementAttempt/EfSettlementAttemptDataAccess.cs @@ -19,6 +19,15 @@ namespace BinaryDad.AggregateDal return true; } + public virtual bool UpdateAttempt(SettlementAttempt attempt) + { + Console.WriteLine($"Updating attempt ID {attempt.Id} to SQL"); + + // use EF to attach to context and SaveChanges() + + return true; + } + public SettlementAttempt GetAttempt(int recordId) { Console.WriteLine($"Getting attempt {recordId} from SQL"); diff --git a/SettlementAttempt/ISettlementAttemptDataAccess.cs b/SettlementAttempt/ISettlementAttemptDataAccess.cs index 5149445..1664383 100644 --- a/SettlementAttempt/ISettlementAttemptDataAccess.cs +++ b/SettlementAttempt/ISettlementAttemptDataAccess.cs @@ -11,6 +11,13 @@ namespace BinaryDad.AggregateDal /// Whether the add operation was successful bool AddAttempt(SettlementAttempt attempt); + /// + /// Updates an attempt + /// + /// An existing attempt to update + /// + bool UpdateAttempt(SettlementAttempt attempt); + /// /// Retrieves an existing settlement attempt /// diff --git a/SettlementAttempt/QuickBaseSettlementAttemptDataAccess.cs b/SettlementAttempt/QuickBaseSettlementAttemptDataAccess.cs index 8535301..2897bab 100644 --- a/SettlementAttempt/QuickBaseSettlementAttemptDataAccess.cs +++ b/SettlementAttempt/QuickBaseSettlementAttemptDataAccess.cs @@ -21,5 +21,19 @@ namespace BinaryDad.AggregateDal return true; } + + public override bool UpdateAttempt(SettlementAttempt attempt) + { + // update SQL first + base.UpdateAttempt(attempt); + + // use mapping of the properties to build a request using QB API + // consider using reflection on the type, such as use of a [QuickBaseField(SettlementAttemptFieldMap.ClientFirstName)] + // to build list of mappings in QB API + + Console.WriteLine($"Updating attempt ID {attempt.RecordId} to Quickbase with SQL ID {attempt.Id}"); + + return true; + } } }