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