Beispiel #1
0
        public bool CreatePayDays(IncomeCreate model)
        {
            int frequencyFactor = model.FrequencyFactor ?? 1;

            var payFreqType = model.PayFreqType ?? PayFreqType.Once;

            DateTime lastPayDate = model.LastPayDate ?? new DateTime(2035, 12, 31);

            if (payFreqType == PayFreqType.Once)
            {
                lastPayDate = model.InitialPayDate;
            }

            var payDates = new List <DateTime>();

            if (model.PayFreqType == PayFreqType.ByMonth)
            {
                for (var date = model.InitialPayDate;
                     (DateTime.Compare(date, lastPayDate)) <= 0;
                     date = date.AddMonths(1 * frequencyFactor))
                {
                    payDates.Add(date);
                }
            }
            else if (model.PayFreqType == PayFreqType.ByWeek)
            {
                for (var date = model.InitialPayDate;
                     (DateTime.Compare(date, lastPayDate)) <= 0;
                     date = date.AddDays(7 * frequencyFactor))
                {
                    payDates.Add(date);
                }
            }
            else
            {
                payDates.Add(model.InitialPayDate);
            }

            using (var context = new ApplicationDbContext())
            {
                foreach (var date in payDates)
                {
                    var payDayEntity = new PayDay()
                    {
                        IncomeId = (context.Sources.Single(s => s.Name == model.SourceName && s.UserId == _userId)).Id,
                        MonthId  = (context.Months.Single(m => m.BeginDate.Month == date.Month && m.BeginDate.Year == date.Year && m.UserId == _userId)).Id,
                        Date     = date,
                        Amount   = model.Amount,
                        UserId   = _userId
                    };
                    context.PayDays.Add(payDayEntity);
                }
                return(context.SaveChanges() == payDates.Count());
            }
        }
Beispiel #2
0
        public bool CreateIncome(IncomeCreate model) //creates income
        {
            var entity = new Income()
            {
                AccountID    = _userID,
                IncomeAmount = model.IncomeAmount,
                IncomeDate   = model.IncomeDate
            };

            using (var ctx = new ApplicationDbContext())
            {
                ctx.Incomes.Add(entity);
                return(ctx.SaveChanges() == 1);
            }
        }
Beispiel #3
0
        public IHttpActionResult Post(IncomeCreate income)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var service = CreateIncomeService();

            if (!service.CreateIncome(income))
            {
                return(InternalServerError());
            }

            return(Ok());
        }
Beispiel #4
0
        public bool CreateSource(IncomeCreate model)
        {
            var sourceEntity = new Source()
            {
                Name   = model.SourceName,
                Type   = SourceType.Budgeted,
                UserId = _userId
            };

            using (var context = new ApplicationDbContext())
            {
                context.Sources.Add(sourceEntity);
                return(context.SaveChanges() == 1);
            }
        }
Beispiel #5
0
        public bool CreateIncome(IncomeCreate model)
        {
            var sourceService = CreateSourceService();

            if (!sourceService.CreateSource(model))
            {
                return(false);
            }

            int frequencyFactor = model.FrequencyFactor ?? 1;

            var payFreqType = model.PayFreqType ?? PayFreqType.Once;

            DateTime lastPayDate = model.LastPayDate ?? new DateTime(2035, 12, 31);

            if (payFreqType == PayFreqType.Once)
            {
                lastPayDate = model.InitialPayDate;
            }

            using (var context = new ApplicationDbContext())
            {
                var incomeEntity = new Income()
                {
                    Id              = (context.Sources.Single(s => s.Name == model.SourceName && s.UserId == _userId)).Id,
                    Amount          = model.Amount,
                    PayFreqType     = payFreqType,
                    FrequencyFactor = frequencyFactor,
                    InitialPayDate  = model.InitialPayDate,
                    LastPayDate     = lastPayDate,
                    UserId          = _userId
                };
                context.Incomes.Add(incomeEntity);
                if (!(context.SaveChanges() == 1))
                {
                    return(false);
                }
            }

            var payDayService = CreatePayDayService();

            if (!payDayService.CreatePayDays(model))
            {
                return(false);
            }

            return(true);
        }
Beispiel #6
0
        public ActionResult Create(IncomeCreate model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var service = CreateIncomeService();

            if (service.CreateIncome(model))
            {
                TempData["SaveResult"] = "Your income was created.";
                return(RedirectToAction("Index"));
            }

            ModelState.AddModelError("", "Income could not be created.");
            return(View(model));
        }