using System; using System.Collections.Generic; using SQLite.Net.Attributes; using SQLiteNetExtensions.Attributes; namespace eJay.Model { //////////////////////////////////////////////////////////////////////////////////////////////////// /// A person. /// /// Andre Beging, 10.09.2017. //////////////////////////////////////////////////////////////////////////////////////////////////// public class Person { #region Id [PrimaryKey] public Guid Id { get; set; } = Guid.NewGuid(); #endregion #region Transaction Relation [OneToMany(CascadeOperations = CascadeOperation.All)] public List Transactions { get; set; } = new List(); #endregion #region Total /// Transaction Total public double Total { get { var sum = 0.0; foreach (var transaction in Transactions) { if (transaction.Type == TransactionType.Charge) sum -= transaction.Amount; else if (transaction.Type == TransactionType.Deposit) sum += transaction.Amount; } return sum; } } #endregion #region FirstName public string FirstName { get; set; } #endregion #region LastName public string LastName { get; set; } #endregion #region ToString() //////////////////////////////////////////////////////////////////////////////////////////////////// /// Convert this object into a string representation. /// /// Andre Beging, 09.09.2017. /// /// A string that represents this object. //////////////////////////////////////////////////////////////////////////////////////////////////// public override string ToString() { return string.Format("{0} {1}", FirstName, LastName); } #endregion } }