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