public ICommandResult Handle(AtualizarSistemaCommand command) { //Fail Fast Validation command.Validate(); if (command.Invalid) { return(new GenericCommandResult(false, _msgError, command.Notifications)); } var sistema = _sistema_repository.ObterPorId(Guid.Parse(command.Id)); sistema.AlterarNomeDescricao(command.Nome, command.Descricao); sistema.AtivarDesativar(command.Ativo); _sistema_repository.Atualizar(sistema); //Atualiza os Itens de Inspeção foreach (var item in command.ItensSistema) { var itemSistema = new SistemaItem(); var unidadeMedida = _unidade_medida_repository.ObterPorId(Guid.Parse(item.IdUnidadeMedida)); if (Guid.TryParse(item.Id, out var idItem)) { itemSistema = _sistema_item_repository.ObterPorId(idItem); itemSistema.AlterarSistemaItem(item.Nome, item.Descricao, unidadeMedida); itemSistema.AtualizarOrdem(item.NumeroOrdem); itemSistema.AtivarDesativar(item.Ativo); _sistema_item_repository.Atualizar(itemSistema); } else { var ultimaOrdemItem = _sistema_item_repository.ObterUltimaOrdem(sistema.Id); _sistema_item_repository.Criar(new SistemaItem(item.Nome, item.Descricao, sistema, ultimaOrdemItem + 1, unidadeMedida)); } } //Retorna o resultado return(new GenericCommandResult(true, "Sistema alterado com Sucesso!", null)); }
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 PossuirItemSistemaCadastrado() { return(_sistema_item_repository.ObterPorId(IdItemSistema) != null); }