public IPaymentInterval Create(PaymentIntervalType intervalType) { var interval = new PaymentInterval(intervalType); Project.CurrentProject.Elements.AddElement(interval); return(interval); }
public void GetPatternPayment(MonthEnum startingMonth, PaymentIntervalType paymentType) { Dictionary <int, MonthEnum> monthsSorted = GetMonthsSorted(startingMonth); if (paymentType == PaymentIntervalType.EverySecondMonth) { AddRange(monthsSorted.Where(m => m.Key % 2 == 0).Select(m => m.Value)); } else if (paymentType == PaymentIntervalType.EverySixthMonth) { AddRange(monthsSorted.Where(m => m.Key % 6 == 0).Select(m => m.Value)); } }
public IPayment Create(string name, ICategory category, double amount, PaymentIntervalType intervalType, MonthEnum startingMonth, ICategory subCategory = null) { var interval = Project.CurrentProject.Intervals.Single(i => i.Type == intervalType); var factory = new PayPatternFactory() { Project = Project }; var pattern = factory.Create(interval, startingMonth); var payment = new Payment(name, category, amount, pattern, subCategory); Project.CurrentProject.Elements.AddElement(payment); return(payment); }
public AffectedMonthsCollection(MonthEnum startingMonth, PaymentIntervalType paymentInterval) { if (paymentInterval == PaymentIntervalType.Monthly) { CreateDefaultPayments(); } else if (paymentInterval == PaymentIntervalType.Yearly || paymentInterval == PaymentIntervalType.OneTimePayment || paymentInterval == PaymentIntervalType.Custom) { Clear(); Add(startingMonth); } else { GetPatternPayment(startingMonth, paymentInterval); } }
public static string ConvertToText(this PaymentIntervalType interval) { switch (interval) { case PaymentIntervalType.OneTimePayment: return("One time payment"); case PaymentIntervalType.Monthly: return("Monthly"); case PaymentIntervalType.EverySecondMonth: return("Every 2nd month"); case PaymentIntervalType.EverySixthMonth: return("Every 6th month"); case PaymentIntervalType.Yearly: return("Once a year"); default: return("Custom"); } }
public PaymentInterval(PaymentIntervalType paymentIntervalType) : base() { Type = paymentIntervalType; Name = Type.ConvertToText(); }