public bool Update(string Username)
        {
            bool SaveData = false;
            var  current  = DeveloperAgreement.Get(Agreement_Number);

            if (current == null)
            {
                return(false);
            }
            if (current.Audit_Log.Length > 0) // this record already exists
            {
                if (Data_Changed(current))
                {
                    SaveData = true;
                    string s = Constants.Create_Audit_Log(Username, "Agreement Amount", current.Agreement_Amount_Formatted, Agreement_Amount_Formatted);
                    Audit_Log = s + Environment.NewLine + current.Audit_Log;
                }
            }
            else
            {
                Audit_Log = Constants.Create_Audit_Log(Username, "Record Created");
                SaveData  = true;
            }
            if (SaveData)
            {
                string query = @"
          MERGE ImpactFees_Developer_Agreements WITH (HOLDLOCK) DA
          USING (SELECT @Agreement_Number, @Agreement_Amount, @Audit_Log) AS D 
            (Agreement_Number, Agreement_Amount, Audit_Log) ON DA.Agreement_Number = D.Agreement_Number
          WHEN MATCHED THEN
            UPDATE 
              SET 
                Agreement_Amount=@Agreement_Amount, 
                Audit_Log=@Audit_Log
          WHEN NOT MATCHED THEN
            INSERT 
              (Agreement_Number, Agreement_Amount, Audit_Log)
            VALUES 
              (@Agreement_Number, @Agreement_Amount, @Audit_Log);";
                return(Constants.Save_Data <DeveloperAgreement>(query, this));
            }
            else
            {
                return(true);
            }
        }
 private bool Data_Changed(DeveloperAgreement current)
 {
     return(Agreement_Amount_Formatted != current.Agreement_Amount_Formatted);
 }