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()); } }
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); } }
public IHttpActionResult Post(IncomeCreate income) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var service = CreateIncomeService(); if (!service.CreateIncome(income)) { return(InternalServerError()); } return(Ok()); }
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); } }
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); }
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)); }