public async Task <IHttpActionResult> Create([FromBody] CreatePersonnelDismissalDto personnelDismissal) { if (personnelDismissal == null) { return(BadRequest()); } //custom validations var validator = new CreatePersonnelDismissalDtoValidator(); var results = validator.Validate(personnelDismissal); if (!results.IsValid) { foreach (var failure in results.Errors) { ModelState.AddModelError(failure.PropertyName, failure.ErrorMessage); } } if (!ModelState.IsValid) { string errorMessage = new ModelStateError(_logger).OutputMessage(ModelState); return(BadRequest(errorMessage)); } try { var result = await _personnelDismissalService .Create(personnelDismissal, User.Identity.Name); if (result.ReturnId != null) { await _notificationService.NotifyUpdates(result.ReturnId); } if (!result.IsValid) { return(BadRequest(result.Message)); } if (result.IsValid && result.Message != null) //alarm { return(Ok(new { message = result.Message })); } } catch (LogicalException ex) { return(BadRequest(ex.Message)); } catch { return(BadRequest(AppSettings.INTERNAL_SERVER_ERROR_MESSAGE)); } return(Ok()); }