public GenericCommandResult Alterar([FromBody] AtualizarSistemaCommand command, [FromServices] SistemaHandler handler, [FromServices] ISistemaRepository sistema_repository) { return((GenericCommandResult)handler.Handle(new AtualizarSistemaCommand( HttpContext.User.Identities.FirstOrDefault().Claims.FirstOrDefault(c => c.Type.Contains("user_id")).Value, command.Id, command.Nome, command.Descricao, command.Ativo, command.ItensSistema ))); }
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)); }