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); }