public async Task <IHttpActionResult> Update([FromBody] UpdatePersonnelDismissalDto
                                                     personnelDismissal)
        {
            if (personnelDismissal == null)
            {
                return(BadRequest());
            }
            //custom validations
            var validator = new UpdatePersonnelDismissalDtoValidator();
            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.Update(personnelDismissal);

                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());
        }