public Atividade Atualizar(Atividade obj)
        {
            if (!obj.IsValid())
            {
                return(obj);
            }

            obj.ValidationResult = new AtividadeValidation().Validate(obj);
            if (!obj.ValidationResult.IsValid)
            {
                return(obj);
            }

            obj.ValidationResult.Message = Mensagens.MS_004;

            return(_classRepository.Atualizar(obj));
        }
        public void Handle(IncluirAtividadeCommand cmd)
        {
            Atividade atividade = new Atividade(cmd.Id, cmd.Descricao, cmd.Nome, cmd.DataHoraInicio, cmd.DataHoraFim, cmd.EmpresaId);


            if (!atividade.IsValid())
            {
                NotificarValidacoesErro(atividade.ValidationResult);
                return;
            }

            _repository.IncluirAtividade(atividade);

            if (Commit())
            {
                _mediator.PublicarEvento(new AtividadeAdicionadaEvent(atividade.Id, atividade.Descricao, atividade.Nome, atividade.DataHoraInicio, atividade.DataHoraFim, atividade.EmpresaId));
            }
        }
        public void Handle(EditarAtividadeCommand cmd)
        {
            Atividade atividade = AtividadeExistente(cmd.Id, cmd.MessageType);

            if (atividade != null)
            {
                atividade.AtualizarAtividade(cmd.Descricao, cmd.Nome, cmd.DataHoraInicio, cmd.DataHoraFim);

                if (!atividade.IsValid())
                {
                    NotificarValidacoesErro(atividade.ValidationResult);
                    return;
                }

                _repository.AlterarAtividade(atividade);

                if (Commit())
                {
                    _mediator.PublicarEvento(new AtividadeAtualizadaEvent(atividade.Id, atividade.Descricao, atividade.Nome, atividade.DataHoraInicio, atividade.DataHoraFim, atividade.FuncionarioId));
                }
            }
        }
        public Atividade Adicionar(Atividade obj)
        {
            try
            {
                if (!obj.IsValid())
                {
                    return(obj);
                }

                obj.ValidationResult = new AtividadeValidation().Validate(obj);
                if (!obj.ValidationResult.IsValid)
                {
                    return(obj);
                }

                obj.ValidationResult.Message = Mensagens.MS_003;
                return(_classRepository.AdicionarSave(obj));
            }
            catch (Exception ex)
            {
                obj.ValidationResult.Add(new DomainValidation.Validation.ValidationError(ex.Message));
                return(obj);
            }
        }