public IActionResult Post(OccurrenceCreateDto occurrenceCreateDto) { var occurrenceModel = _mapper.Map <Occurrence>(occurrenceCreateDto); var building = _repositoryBuilding.FindById(occurrenceModel.BuildingId); var activityType = _repositoryActivityType.FindById(occurrenceModel.ActivityTypeId); if (building == null || activityType == null) { return(NotFound()); } if (_warrantyValidator.IsOccurreceInWarranty(activityType.WarrantyInYears, building.InspectionDate)) { return(UnprocessableEntity("Este tipo de atividade não é mais aplicável à essa construção (prazo de validade).")); } _repository.Create(occurrenceModel); if (_repository.SaveChanges()) { return(Ok(_mapper.Map <OccurrenceReadDto>(occurrenceModel))); } else { return(BadRequest()); } }