public async Task <IActionResult> CreateExpenditure(
            [FromBody] EditableArcFlashLabelExpenditure toCreate,
            [FromRoute(Name = "week-id")] int weekId,
            [FromRoute(Name = "employee-id")] int employeeId,
            [FromRoute(Name = "job-id")] int jobId)
        {
            var rez = await _updateArcFlashLabelExpenditure.Process(new UpdateArcFlashLabelExpenditureMessage(toCreate, Guid.Empty));

            return(rez.AsApiResult());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> SaveExpense([FromForm] ExpenseViewModel model)
        {
            var saved = false;

            switch (model.ExpenseType)
            {
            case ExpenditureTypeEnum.ArcFlashLabelExpenditure:
                var afl = await updateArcFlashLabelExpenditure.Process(new UpdateArcFlashLabelExpenditureMessage(model.ArcFlashLabelExpenditure.Detail, model.ArcFlashLabelExpenditure.Detail.Id));

                saved = afl.Success != null;
                break;

            case ExpenditureTypeEnum.MiscExpenditure:
                var misc = await updateMiscExpenditure.Process(new UpdateMiscExpenditureMessage(model.MiscExpenditure.Detail, model.MiscExpenditure.Detail.Id));

                saved = misc.Success != null;
                break;

            case ExpenditureTypeEnum.ContractorExpenditure:
                var ce = await updateContractorExpenditure.Process(new UpdateContractorMessage(model.ContractorExpenditure.Detail, model.ContractorExpenditure.Detail.ExternalId));

                saved = ce.Success != null;
                break;

            case ExpenditureTypeEnum.TimeAndExpenceExpenditure:
                var te = await updateTimeAndExpenseExpenditure.Process(new UpdateTimeAndExpenseExpenditureMessage(model.TimeAndExpenceExpenditure.Detail, model.TimeAndExpenceExpenditure.Detail.Id));

                saved = te.Success != null;
                break;

            case ExpenditureTypeEnum.CompanyVehicleExpenditure:
                var cv = await updateCompanyVehicleExpenditure.Process(new UpdateCompanyVehicleExpenditureMessage(model.CompanyVehicleExpenditure.Detail, model.CompanyVehicleExpenditure.Detail.ExternalId));

                saved = cv.Success != null;
                break;

            default:
                throw new NotImplementedException();
            }

            if (saved)
            {
                NotificationsController.AddNotification(this.User.SafeUserName(), $"Expenditure Saved");
            }

            return(RedirectToAction(nameof(ExpenseList)));
        }