public override Result <EmergencyRequiredVehicle> Register(EmergencyRequiredVehicleModel model) { try { EmergencyRequiredVehicle emergencyRequiredVehicle = _mapper.Map <EmergencyRequiredVehicle>(model); var result = _emergencyRequiredVehicleValidation.Validate(emergencyRequiredVehicle); if (!result.Success) { return(result); } var emergency = _emergencyDAL.Find(new EmergencyFilter { Id = model.EmergencyId }); if (emergency.EmergencyStatus != EmergencyStatus.Committed) { emergency.EmergencyStatus = EmergencyStatus.InService; _emergencyDAL.Update(emergency); } _emergencyRequiredVehicleDAL.Insert(emergencyRequiredVehicle); MedicalDecisionHistory medicalDecision = _mapper.Map <MedicalDecisionHistory>(model.MedicalDecisionHistoryModel); _medicalDecisionHistoryDAL.Insert(medicalDecision); var resultSave = _emergencyRequiredVehicleDAL.Save(); if (!resultSave.Success) { return(Result <EmergencyRequiredVehicle> .BuildError(resultSave.Messages)); } return(Result <EmergencyRequiredVehicle> .BuildSuccess(null)); } catch (Exception error) { return(Result <EmergencyRequiredVehicle> .BuildError("Erro no momento de registar do veículo requerido para a ocorrência.", error)); } }