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 PaymentService { private EntityContext _context; public PaymentService(EntityContext context) { _context = context; } /// /// Add new payment /// /// /// Added payment public Payment AddPayment(Payment p) { _context.Payments.Add(p); _context.SaveChanges(); return p; } /// /// Create and add new payment /// /// /// /// /// /// /// /// Added payment public Payment AddPayment(int price, PaymentCurrency currency, DateTime date, string purpose, bool paid, PaymentGroup group) { User u = new User() { Login = "Test" }; return AddPayment(price, currency, date, purpose, paid, group, u, null); } /// /// Create and add new payments /// /// /// /// /// /// /// /// /// Added payment public Payment AddPayment(int price, PaymentCurrency currency, DateTime date, string purpose, bool paid, PaymentGroup group, User user) { return AddPayment(price, currency, date, purpose, paid, group, user, null); } /// /// Create and add new payment with note /// /// /// /// /// /// /// /// /// /// Added payment public Payment AddPayment(int price, PaymentCurrency currency, DateTime date, string purpose, bool paid, PaymentGroup group, User user, string note) { return AddPayment(new Payment(user) { Price = price, Currency = currency, Date = date, Purpose = purpose, Paid = paid, Group = group, Note = note }); } /// /// Retrieve all payments /// /// List of payments public List GetAllPayments() { return _context.Payments.ToList(); } /// /// Get payment by id (primary key) /// /// Primary key /// Payment public Payment GetPayment(int id) { return _context.Payments.FirstOrDefault(i => i.PaymentId == id); } /// /// Update payment /// /// Payment for update /// Updated payment public Payment UpdatePayment(Payment p) { _context.Payments.Add(p); _context.SaveChanges(); return p; } /// /// Delete payment by ID (primary key) /// /// Primary key /// Deleted payment public Payment DeletePayment(int id) { Payment p = GetPayment(id); if (p != null) { Payment deleted = _context.Payments.Remove(p); _context.SaveChanges(); return deleted; } else { throw new IndexOutOfRangeException("Payment with ID " + id + " don't exist!"); } } /// /// Delete payment /// /// Payment to delete /// Deleted payment public Payment DeletePayment(Payment p) { Payment deleted = _context.Payments.Remove(p); _context.SaveChanges(); return deleted; } } }