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