/// <summary> /// Handles navigating to the <see cref="Views.ExpenseEdit"/> /// </summary> /// <param name="sender">The sender object</param> /// <param name="e">Event arguments</param> public static void EditButtonClicked(object sender, EventArgs e) { if (ExpenseEdit == null) { ExpenseEdit = new ExpenseEdit(); ExpenseEdit.FormClosed += ExpenseEditViewOnFormClosed; } var selectedListItems = ExpenseView.ExpenseListView.SelectedItems; if (selectedListItems.Count > 0) { var selectedItem = selectedListItems[0]; var expenseId = Guid.Parse(selectedItem.SubItems[0].Text); var expense = ListAccessHelper.FindExpense(expenseId); EditExpense = expense; } else { EditExpense = null; } ExpenseEdit.Show(ExpenseView); ExpenseView.Hide(); }
/// <summary> /// Handles the save and back button being pressed on the <see cref="Views.ExpenseEdit"/> form /// </summary> /// <param name="sender">The sender object</param> /// <param name="e">Event arguments</param> public static void EditSaveAndBack(object sender, EventArgs e) { var success = SaveEditExpense(); if (success) { ExpenseEdit.Owner.Show(); ExpenseEdit.Close(); } }
/// <summary> /// Process all Intouch ExpenseEdit CSVs /// </summary> public static void ProcessExpenseEditData(DirectoryFile directoryFile) { List <ExpenseEdit> ExpenseEditODS = new List <ExpenseEdit>(); List <ExpenseEdit> ExpenseEditNew = new List <ExpenseEdit>(); int newRows = 0; try { logger.Info($"Started processing file [{directoryFile.FileName}]"); List <string[]> ExpenseEditFileString = new List <string[]>(); List <ExpenseEdit> ExpenseEditFile = new List <ExpenseEdit>(); FileUtility.CSVStringReader(directoryFile.FileContent, ",", ExpenseEditFileString, 9, true); foreach (string[] expenseEditString in ExpenseEditFileString) { ExpenseEdit ExpenseEdit = new ExpenseEdit { Date = Convert.ToDateTime(expenseEditString[0]), Description = expenseEditString[1], Detail = expenseEditString[2], Total = Convert.ToDecimal(expenseEditString[3]), EffectiveDate = Convert.ToDateTime(expenseEditString[4]), EffectiveDescription = expenseEditString[5] }; ExpenseEditFile.Add(ExpenseEdit); } using (BusinessAccountingEntities context = new BusinessAccountingEntities()) { var query = (from row in context.ExpenseEdit select row).ToList(); ExpenseEditODS = query; foreach (ExpenseEdit expenseEdit in ExpenseEditFile) { if (!ExpenseEditODS.Contains(expenseEdit)) { ExpenseEditNew.Add(expenseEdit); newRows++; } } foreach (ExpenseEdit expenseEdit in ExpenseEditNew) { context.ExpenseEdit.Add(expenseEdit); } context.SaveChanges(); logger.Info($"Added [{newRows.ToString()}] rows to ODS from file [{directoryFile.FileName}]"); logger.Info($"Finished processing file [{directoryFile.FileName}]"); } } catch (Exception e) { logger.Error($"Exception while trying to process file [{directoryFile.FileName}]. Exception [{e.ToString()}]"); throw; } }
public IActionResult Edit(ExpenseEdit expEdit) { if (ModelState.IsValid) { expenseRepository.EditExpense(expEdit); return(RedirectToAction("Details", new { id = expEdit.TableNumber })); } ViewBag.Expense = expenseRepository.GetExpenseById(expEdit.ExpenseId); return(View(expEdit)); }
public bool UpdateExpense(ExpenseEdit model) { if (model.EndDate == null) { model.EndDate = new DateTime(2035, 12, 31); } if (model.ExpenseFreqType == ExpenseFreqType.Once) { model.EndDate = model.InitialDueDate; } var categoryService = CreateCategoryService(); if (!categoryService.UpdateCategory(model)) { return(false); } using (var context = new ApplicationDbContext()) { var expenseEntity = context.Expenses.Single(e => e.Id == model.Id && e.UserId == _userId); if (expenseEntity.Amount == model.Amount && expenseEntity.ExpenseFreqType == model.ExpenseFreqType && expenseEntity.FrequencyFactor == model.FrequencyFactor && expenseEntity.InitialDueDate == model.InitialDueDate && expenseEntity.EndDate == model.EndDate) { return(true); } expenseEntity.Amount = model.Amount; expenseEntity.ExpenseFreqType = model.ExpenseFreqType; expenseEntity.FrequencyFactor = model.FrequencyFactor; expenseEntity.InitialDueDate = model.InitialDueDate; expenseEntity.EndDate = model.EndDate; if (!(context.SaveChanges() == 1)) { return(false); } } var dueDateService = CreateDueDateService(); if (!dueDateService.UpdateDueDates(model)) { return(false); } return(true); }
public bool UpdateDueDates(ExpenseEdit model) { if (!DeleteDueDates(model.Id)) { return(false); } var dueDates = new List <DateTime>(); if (model.ExpenseFreqType == ExpenseFreqType.ByMonth) { for (var date = model.InitialDueDate; (DateTime.Compare(date, model.EndDate)) <= 0; date = date.AddMonths(1 * model.FrequencyFactor)) { dueDates.Add(date); } } else if (model.ExpenseFreqType == ExpenseFreqType.ByWeek) { for (var date = model.InitialDueDate; (DateTime.Compare(date, model.EndDate)) <= 0; date = date.AddDays(7 * model.FrequencyFactor)) { dueDates.Add(date); } } else { dueDates.Add(model.InitialDueDate); } using (var context = new ApplicationDbContext()) { foreach (var date in dueDates) { var dueDateEntity = new DueDate() { ExpenseId = model.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.DueDates.Add(dueDateEntity); } return(context.SaveChanges() == dueDates.Count()); } }
public void EditExpense(ExpenseEdit exp) { Expense expense = GetExpenseById(exp.ExpenseId); Expense newExp = ExpenseMaker.CreateExpense(exp.TableNumber, exp.Name, exp.Amount, exp.MembersInvolved, exp.Comment); if (expense != null) { expense.Name = newExp.Name; expense.NumberOfMembersInvolved = newExp.NumberOfMembersInvolved; expense.NamesOfMembersInvolved = newExp.NamesOfMembersInvolved; expense.Amount = newExp.Amount; expense.Comment = newExp.Comment; appDbContext.SaveChanges(); } }
public ActionResult EditExpense(int id) { var service = CreateExpenseService(); var detail = service.GetExpenseById(id); var model = new ExpenseEdit { ExpenseId = detail.ExpenseId, ExpenseType = detail.ExpenseType, Description = detail.Description, Budget = detail.Budget, ActualAmount = detail.ActualAmount, PaymentMethod = detail.PaymentMethod }; return(View(model)); }
public bool UpdateCategory(ExpenseEdit model) { using (var context = new ApplicationDbContext()) { var categoryEntity = context.Categories.Single(c => c.Id == model.Id && c.UserId == _userId); if (categoryEntity.Name == model.CategoryName && categoryEntity.Type == model.CategoryType) { return(true); } categoryEntity.Name = model.CategoryName; categoryEntity.Type = model.CategoryType; return(context.SaveChanges() == 1); } }
// GET: Expense/Edit/{id} public ActionResult Edit(int id) { var service = CreateExpenseService(); var expenseDetail = service.GetExpenseById(id); var model = new ExpenseEdit { Id = expenseDetail.Id, CategoryName = expenseDetail.CategoryName, CategoryType = expenseDetail.CategoryType, Amount = expenseDetail.Amount, ExpenseFreqType = expenseDetail.ExpenseFreqType, FrequencyFactor = expenseDetail.FrequencyFactor, InitialDueDate = expenseDetail.InitialDueDate, EndDate = expenseDetail.EndDate }; return(View(model)); }
public bool UpdateExpense(ExpenseEdit model) { using (var ctx = new ApplicationDbContext()) { var entity = ctx .Expenses .Single(e => e.ExpenseId == model.ExpenseId && e.OwnerId == _userId); entity.ExpenseType = model.ExpenseType; entity.Description = model.Description; entity.Budget = model.Budget; entity.ActualAmount = model.ActualAmount; entity.PaymentMethod = model.PaymentMethod; entity.EventId = model.EventId; entity.IsPurchased = model.IsPurchased; return(ctx.SaveChanges() == 1); } }
private bool SetCheckmarkState(int expenseId, bool newState) { var userId = Guid.Parse(User.Identity.GetUserId()); var service = new ExpenseService(userId); var detail = service.GetExpenseById(expenseId); var updatedExpense = new ExpenseEdit { ExpenseId = detail.ExpenseId, ExpenseType = detail.ExpenseType, Description = detail.Description, Budget = detail.Budget, ActualAmount = detail.ActualAmount, PaymentMethod = detail.PaymentMethod, Event = detail.Event, EventId = detail.EventId, IsPurchased = newState }; return(service.UpdateExpense(updatedExpense)); }
public ActionResult EditExpense(int id, ExpenseEdit model) { if (!ModelState.IsValid) { return(View(model)); } if (model.ExpenseId != id) { ModelState.AddModelError("", "Invalid ID Number"); return(View(model)); } var service = CreateExpenseService(); if (service.UpdateExpense(model)) { TempData["SaveResult"] = "Your expense was successfully updated!"; return(RedirectToAction("Index")); } ModelState.AddModelError("", "Your expense could not be updated. The event ID you entered may be invalid."); return(View(model)); }
public ActionResult Edit(int id, ExpenseEdit model) { if (!ModelState.IsValid) { return(View(model)); } if (model.Id != id) { ModelState.AddModelError("", "Id Mismatch"); return(View(model)); } var service = CreateExpenseService(); if (service.UpdateExpense(model)) { TempData["SaveResult"] = "Your expense was updated."; return(RedirectToAction("Index")); } ModelState.AddModelError("", "Your expense could not be updated."); return(View(model)); }
/// <summary> /// Handles the cancel button being pressed on the <see cref="Views.ExpenseEdit"/> form /// </summary> /// <param name="sender">The sender object</param> /// <param name="e">Event arguments</param> public static void EditCancelClicked(object sender, EventArgs e) { ExpenseEdit.Owner.Show(); ExpenseEdit.Close(); }