public async Task <ActionResult> Edit(int weekid, string originUrl, int expenseItemId) { var jobs = await _jobsService.GetAsync(await _sessionAdapter.EmployeeIdAsync()); var expense = await _expenseService.GetExpenseById(expenseItemId); var vm = new EditExpenseViewModel() { AvailableJobs = jobs.ToList(), ExpenseToSave = new ExpenseModel() { AddtionalNotes = expense.AddtionalNotes, Amount = expense.Amount, AttachmentName = expense.AttatchmentName, Classification = expense.Classification, RelatedJob = expense.RelatedJob, SaveDate = expense.SaveDate }, Week = WeekDTO.CreateForWeekId(weekid), CancelUrl = originUrl, WeekId = weekid, SelectedJobId = expense.RelatedJob.JobId, ExpenseItemId = expense.ExpenseItemId }; return(View("Edit", vm)); }
public async Task <ActionResult> Edit(EditExpenseViewModel vm, string postType) { if (postType == "Delete") { var deleted = await _expenseService.DeleteExpense(vm.ExpenseItemId); if (deleted != null) { System.IO.File.Delete(Path.Combine(_uploadLocationResolver.GetUploadPath(), deleted.AttachmentId.Value.ToString())); } } else { var existing = await _expenseService.GetExpenseById(vm.ExpenseItemId); var job = await _jobsService.GetForJobId(vm.SelectedJobId); await _expenseService.SaveExpensesForEmployee(new ExpenseDTO() { AddtionalNotes = vm.ExpenseToSave.AddtionalNotes, Amount = vm.ExpenseToSave.Amount, AttachmentId = vm.AttachmentId, AttatchmentName = vm.ExpenseToSave.AttachmentName, Classification = vm.ExpenseToSave.Classification, EmployeeId = await _sessionAdapter.EmployeeIdAsync(), RelatedJob = job.CoreInfo, SaveDate = DateTimeOffset.UtcNow, WeekId = vm.WeekId, ExpenseItemId = vm.ExpenseItemId }); } var jobDetails = await _jobsService.GetForJobId(vm.SelectedJobId); Notifications.NotificationsController.AddNotification(User.Identity.Name, $"{vm.ExpenseToSave.AttachmentName} was saved."); return(Redirect(vm.CancelUrl)); }