public Task <ICommandResult> Handle(EditarCentroCustoCommand request, CancellationToken cancellationToken) { request.Validate(); if (request.Invalid) { AddNotifications(request); return(Task.FromResult <ICommandResult>(new CommandResult("001", false, "Não foi possível editar centro de custo"))); } CentroCusto centroCusto = _repositorio.FindCentroCusto(request.IdControCusto); if (centroCusto == null) { AddNotification("", "Centro de custo não exite"); return(Task.FromResult <ICommandResult>(new CommandResult("001", false, "Não foi possível editar centro de custo"))); } throw new System.NotImplementedException(); }
public ICommandResult Handle(EditarCentroCustoCommand command) { //Validar Empresa var empresa = _empresaRepository.Buscar(e => e.CodEmpresa == command.CodEmpresa && e.IdSituacao == (int)ESituacao.Ativo).FirstOrDefault(); if (empresa == null) { AddNotification("Cod Empresa", "O Código de Empresa informado não existe ou Empresa não está ativa"); return(new CommandResult(false, "Não foi possível adicionar o registro")); } //Validar Grupo var grupo = _grupoRepository.Buscar(g => g.Codigo == command.CodGrupo).FirstOrDefault(); if (grupo == null) { AddNotification("Cod Grupo", "O Código de Grupo informado não existe"); return(new CommandResult(false, "Não foi possível adicionar o registro")); } //Validar Classe var classe = _classeContabilRepository.Buscar(c => c.Codigo == command.CodClasse).FirstOrDefault(); if (classe == null) { AddNotification("Cod Classe", "O Código de Classe informado não existe"); return(new CommandResult(false, "Não foi possível adicionar o registro")); } //Validar TipoBloqueio var tipoBloqueio = _tipoBloqueioRepository.Buscar(t => t.Codigo == command.CodTipoBloqueio).FirstOrDefault(); if (tipoBloqueio == null) { AddNotification("Tipo Bloqueio", "O Tipo de Bloqueio informado não existe"); return(new CommandResult(false, "Não foi possível adicionar o registro")); } //Validar Centro de Custo var centroCusto = _centroCustoRepository.Buscar(c => c.CodEmpresa == command.CodEmpresa && c.CodCentroCusto == command.CodCentroCusto).FirstOrDefault(); if (centroCusto == null) { AddNotification("Inexistente", "O registro informado não existe na APP"); return(new CommandResult(false, "Não foi possível editar o registro")); } if (centroCusto.OrigemLegado == true) { AddNotification("Legado", "Não é permitido a edição deste registro. Pertence a um sistema legado"); return(new CommandResult(false, "Não é permitido a edição deste registro. Pertence a um sistema legado")); } //Gerar as Entidades var centroCustoModel = new CentroCusto(command.CodEmpresa, command.CodCentroCusto, command.NomeCentroCusto, command.CodGrupo, command.CodClasse, command.CodTipoBloqueio); //Auditoria var auditoria = new LogAuditoria("Cadastro", centroCustoModel.GetType().Name, EAcao.Atualizar, centroCustoModel.GetType().Namespace, JsonConvert.SerializeObject(command), UserIdLogado); // Relacionamentos (Se houver) // Agrupar as Validações AddNotifications(centroCustoModel); // Checar as notificações if (Invalid) { return(new CommandResult(false, "Não foi possível realizar esta operação")); } // Salvar as Informações _centroCustoRepository.Atualizar(centroCustoModel); _logAuditoriaRepository.Adicionar(auditoria); // Enviar E-mail de boas vindas (Se houver necessidade) // Retornar informações return(new CommandResult(true, "Operação realizada com sucesso")); }
public IActionResult Put([FromBody] EditarCentroCustoCommand command) { var result = _handler.Handle(command); return(Response(result, _handler.Notifications)); }