public Manutencao Criar(Guid siteId, string idEquipamento, ManutencaoDto manutencaoDto)
        {
            if (!idEquipamento.GuidValido())
                throw new FormatoInvalido("O identificador do equipamento deve ser informado.");

            if (String.IsNullOrWhiteSpace(manutencaoDto.Parte))
                throw new FormatoInvalido("A parte do equipamento deve ser informada.");

            if (manutencaoDto.Data < 0)
                throw new FormatoInvalido("A data da manutenção da parte do equipamento não é válida.");

            var equipamento = _repositorioEquipamentos.BuscarPorId(siteId, idEquipamento.ParaGuid());

            if (equipamento == null)
                throw new RecursoNaoEncontrado("Equipamento não encontrado.");

            if (equipamento.ParametrosManutencao.Partes.Select(x => x.Nome).All(x => x != manutencaoDto.Parte))
                throw new FormatoInvalido("A parte informada para menutenção não faz parte do equipamento especificado.");

            var manutencao = _fabricaManutencao.Criar(idEquipamento.ParaGuid(), manutencaoDto);
            _repositorioEquipamentos.InserirManutencao(equipamento, manutencao);
            return manutencao;
        }
 public virtual Manutencao Criar(ManutencaoDto manutencaoDto)
 {
     return Criar(manutencaoDto.Id, manutencaoDto);
 }
 public virtual Manutencao Criar(Guid id, ManutencaoDto manutencaoDto)
 {
     return new Manutencao(id, manutencaoDto.Data, manutencaoDto.Parte);
 }