public async Task <IActionResult> PlanMaintenanceJobAsync(DateTime planningDate, [FromBody] PlanMaintenanceJob command) { try { if (ModelState.IsValid) { try { // handle command WorkshopPlanning planning = await _planMaintenanceJobCommandHandler.HandleCommandAsync(planningDate, command); // handle result if (planning == null) { return(NotFound()); } // return result return(CreatedAtRoute("GetByDate", new { planningDate = planning.Id }, planning.MapToDTO())); } catch (BusinessRuleViolationException ex) { return(StatusCode(StatusCodes.Status409Conflict, new BusinessRuleViolation { ErrorMessage = ex.Message })); } } return(BadRequest()); } catch (ConcurrencyException) { string errorMessage = "Unable to save changes. " + "Try again, and if the problem persists " + "see your system administrator."; Log.Error(errorMessage); ModelState.AddModelError("ErrorMessage", errorMessage); return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public async Task <IActionResult> PlanMaintenanceJobAsync(DateTime calendarDate, [FromBody] PlanMaintenanceJob command) { try { if (ModelState.IsValid) { try { // handle command var plannedSuccessfully = await _planMaintenanceJobCommandHandler.HandleCommandAsync(calendarDate, command); // handle result if (!plannedSuccessfully) { return(NotFound()); } // return result return(Ok(plannedSuccessfully)); } catch (BusinessRuleViolationException ex) { return(StatusCode(StatusCodes.Status409Conflict, new ViolationModel { ErrorMessage = ex.Message })); } } return(BadRequest()); } catch (ConcurrencyException) { string errorMessage = "Unable to save changes. " + "Try again, and if the problem persists " + "see your system administrator."; Log.Error(errorMessage); ModelState.AddModelError("ErrorMessage", errorMessage); return(StatusCode(StatusCodes.Status500InternalServerError)); } }