using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PersonalFinance
{
///
/// Service for communication to database
///
public class ScheduledItemService
{
private EntityContext _context;
public ScheduledItemService(EntityContext context)
{
_context = context;
}
///
/// Add ScheduledItem
///
/// ScheduledItem
/// Added ScheduledItem
public ScheduledItem AddScheduledItem(ScheduledItem p)
{
_context.ScheduledItems.Add(p);
_context.SaveChanges();
return p;
}
///
/// Add payment to scheduling
///
/// Payment to scheduling
/// Frequency of scheduling
/// ScheduledItem
public ScheduledItem AddPayment(Payment payment, Frequency freq)
{
return AddPayment(payment, freq, DateTime.Now, null);
}
///
/// Add payment to scheduling
///
/// Payment to scheduling
/// Frequency of scheduling
///
/// ScheduledItem
public ScheduledItem AddPayment(Payment payment, Frequency freq, DateTime lastUsed)
{
return AddPayment(payment, freq, lastUsed, null);
}
///
/// Add payment to scheduling
///
/// Payment to scheduling
/// Frequency of scheduling
///
/// How long to be scheduled
/// ScheduledItem
public ScheduledItem AddPayment(Payment payment, Frequency freq, DateTime lastUsed, DateTime? until)
{
return AddScheduledItem(new ScheduledItem()
{
Payment = payment,
Frequency = freq,
LastUse = lastUsed,
Until = until
});
}
///
/// Retrieve all ScheduledItems
///
///
public List GetAllScheduledItems()
{
return _context.ScheduledItems.ToList();
}
///
/// Get ScheduledItems by ID (primary key)
///
/// Primary key
/// ScheduledItems
public ScheduledItem GetScheduledItem(int id)
{
return _context.ScheduledItems.FirstOrDefault(i => i.ScheduledItemId == id);
}
///
/// Update ScheduledItems
///
/// ScheduledItems to update
/// Updated ScheduledItems
public ScheduledItem UpdateScheduledItems(ScheduledItem p)
{
_context.ScheduledItems.Add(p);
_context.SaveChanges();
return p;
}
///
/// Delete ScheduledItems by ID (Primary key)
///
/// Primary key
/// Deleted ScheduledItems
public ScheduledItem DeleteScheduledItem(int id)
{
ScheduledItem p = GetScheduledItem(id);
if (p != null)
{
ScheduledItem deleted = _context.ScheduledItems.Remove(p);
_context.SaveChanges();
return deleted;
}
else
{
throw new IndexOutOfRangeException("ScheduledItem with ID " + id + " don't exist!");
}
}
///
/// Delete ScheduledItems
///
/// ScheduledItems to delete
/// Deleted ScheduledItems
public ScheduledItem DeleteScheduledItem(ScheduledItem p)
{
ScheduledItem deleted = _context.ScheduledItems.Remove(p);
_context.SaveChanges();
return deleted;
}
}
}