Esempio n. 1
0
        public ICommandResult Handle(GravarItemSistemaInspecaoCommand command)
        {
            //Fail Fast Validation
            command.Validate();
            if (command.Invalid)
            {
                return(new GenericCommandResult(false, _msgError, command.Notifications));
            }

            var itemInspecao = _inspecao_item_repository.ObterItemInspecao(command.IdInspecao, command.IdItemSistema);

            if (itemInspecao != null)
            {
                itemInspecao.AtualizaValor(command.Valor);
                _inspecao_item_repository.AtualizarItemInspecao(itemInspecao);
            }
            else
            {
                var inspecao     = _inspecao_repository.ObterPorId(command.IdInspecao);
                var item_sistema = _sistema_item_repository.ObterPorId(command.IdItemSistema);

                _inspecao_item_repository.CriarItemInspecao(new InspecaoItem(inspecao, DateTime.Now, null, item_sistema, command.Valor));
                itemInspecao = _inspecao_item_repository.ObterItemInspecao(command.IdInspecao, command.IdItemSistema);
            }

            //Verificar se todos os itens já foram inspecionados
            var itens_sistema = _sistema_item_repository.ObterItensSistemaInspecao(itemInspecao.SistemaItem.Sistema.Id);

            var itens_inspecao = _inspecao_item_repository.ObterItensInspecao(command.IdInspecao, itemInspecao.SistemaItem.Sistema.Id);

            var inspecaoConcluida = true;

            foreach (var item in itens_sistema)
            {
                if (!itens_inspecao.Any(x => x.SistemaItem.Nome.Contains(item.Nome)))
                {
                    inspecaoConcluida = false;
                }
            }

            //Retorna o resultado
            return(new GenericCommandResult(true, "Item de Inspeção salvo com Sucesso!", new { inspecaoConcluida = inspecaoConcluida }));
        }
Esempio n. 2
0
 private bool PossuirInspecaoCadastrada()
 {
     return(_inspecao_repository.ObterPorId(IdInspecao) != null);
 }