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 })); }
private bool PossuirInspecaoCadastrada() { return(_inspecao_repository.ObterPorId(IdInspecao) != null); }