Exemplo n.º 1
0
 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
                                                     )));
 }
Exemplo n.º 2
0
        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));
        }