public CustomResult Update(UpdatePersonnelDismissalEntranceDto dto) { var personnelDismissalEntrance = _personnelDismissalEntranceRepository.GetById(dto.Id); if (personnelDismissalEntrance != null) { var endDate = dto.EndDate; if (personnelDismissalEntrance.Start != dto.Start || personnelDismissalEntrance.EndDate != endDate || personnelDismissalEntrance.End != dto.End) { if (endDate.HasValue && endDate < personnelDismissalEntrance.StartDate.Date) { return(new CustomResult { Message = "end date cannot be less that start date" + $"{personnelDismissalEntrance.StartDate.ToShortDateString()}" }); } personnelDismissalEntrance.Start = dto.Start; personnelDismissalEntrance.EndDate = endDate; personnelDismissalEntrance.End = dto.End; personnelDismissalEntrance.IsCompleted = dto.End.HasValue; _personnelDismissalEntranceRepository.Update(personnelDismissalEntrance); } } else { try { throw new LogicalException(); } catch (LogicalException ex) { _logger.LogLogicalError (ex, "PersonnelDismissalEntrance entity with the id: '{0}', is not available." + " update operation failed.", dto.Id); throw; } } return(new CustomResult { IsValid = true }); }
public IHttpActionResult Update([FromBody] UpdatePersonnelDismissalEntranceDto personnelEntrance) { if (personnelEntrance == null) { return(BadRequest()); } //custom validations var validator = new UpdatePersonnelDismissalEntranceDtoValidator(); var results = validator.Validate(personnelEntrance); 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 = _personnelDismissalEntranceService.Update(personnelEntrance); if (!result.IsValid) { return(BadRequest(result.Message)); } } catch (LogicalException ex) { return(BadRequest(ex.Message)); } catch { return(BadRequest(AppSettings.INTERNAL_SERVER_ERROR_MESSAGE)); } return(Ok()); }