示例#1
0
        public async Task <ActionResult> Create(AddExpenseViewModel vm)
        {
            var uploadId = new Guid?();

            if (vm.UploadFile != null)
            {
                uploadId = Guid.NewGuid();
                var thisItemId = uploadId.ToString();
                var dir        = _uploadLocationResolver.GetUploadPath();
                using (var fs = new FileStream(Path.Combine(dir, thisItemId), FileMode.Create))
                {
                    await vm.UploadFile.CopyToAsync(fs);
                }
            }


            var jobDetails = await _jobsService.GetForJobId(vm.SelectedJobId);

            await _expenseService.SaveExpensesForEmployee(new ExpenseDTO()
            {
                AddtionalNotes  = vm.ExpenseToSave.AddtionalNotes,
                Amount          = vm.ExpenseToSave.Amount,
                AttachmentId    = uploadId,
                AttatchmentName = vm.UploadFile != null ? $"{vm.ExpenseToSave.AttachmentName}-{vm.UploadFile.FileName}" : vm.ExpenseToSave.AttachmentName,
                Classification  = vm.ExpenseToSave.Classification,
                EmployeeId      = await _sessionAdapter.EmployeeIdAsync(),
                RelatedJob      = jobDetails.CoreInfo,
                SaveDate        = DateTimeOffset.UtcNow,
                WeekId          = vm.WeekId
            });

            Notifications.NotificationsController.AddNotification(User.Identity.Name, $"{vm.UploadFile.Name} was uploaded.");
            return(Redirect(vm.CancelUrl));
        }
示例#2
0
        public async Task <ActionResult> Index(int weekid, string originUrl)
        {
            var jobs = await _jobsService.GetAsync(await _sessionAdapter.EmployeeIdAsync());

            var vm = new AddExpenseViewModel()
            {
                AvailableJobs = jobs.ToList(),
                ExpenseToSave = new ExpenseModel(),
                Week          = WeekDTO.CreateForWeekId(weekid),
                CancelUrl     = originUrl,
                WeekId        = weekid,
            };

            return(View("New", vm));
        }