public async Task <IActionResult> Put([FromBody] TravelPlanUpdateRequest request)
        {
            try
            {
                await _travelPlanService.Update(request);

                return(Ok());
            }
            catch (EntityNotFoundException)
            {
                return(NotFound());
            }
        }
Ejemplo n.º 2
0
        public async Task Update(TravelPlanUpdateRequest request)
        {
            // TODO: write custom NotFound exception and middleware to catch it
            var model = await unitOfWork.TravelPlans.GetById(request.TravelPlanId) ?? throw new EntityNotFoundException($"Travel plan with ID = {request.TravelPlanId} does not exist.");

            model.StartLocation = request.StartLocation;
            model.EndLocation   = request.EndLocation;
            model.StartDate     = request.StartDate.Date;
            model.EndDate       = request.EndDate.Date;
            model.CarId         = request.CarId;

            var employeeTravelPlanMappings = request.EmployeeIds.Select(employeeId => new EmployeeTravelPlanMapping
            {
                EmployeeId = employeeId,
            }).ToList();

            // Delete old mappings before setting new ones
            unitOfWork.EmployeeTravelPlanMappings.DeleteRange(model.EmployeeTravelPlanMappings);
            model.EmployeeTravelPlanMappings = employeeTravelPlanMappings;

            unitOfWork.TravelPlans.Update(model);
            await unitOfWork.Commit();
        }