Ejemplo n.º 1
0
        public IPaymentInterval Create(PaymentIntervalType intervalType)
        {
            var interval = new PaymentInterval(intervalType);

            Project.CurrentProject.Elements.AddElement(interval);

            return(interval);
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 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);
     }
 }
Ejemplo n.º 5
0
        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");
            }
        }
Ejemplo n.º 6
0
 public PaymentInterval(PaymentIntervalType paymentIntervalType)
     : base()
 {
     Type = paymentIntervalType;
     Name = Type.ConvertToText();
 }