//Realização do tratamento do chamado. public ChamadoEntity ColocarEmAtendimento(Guid codigoChamado, int codigoAnalista) { //Recupera o chamado: var chamado = _chamadoRepository.GetByCodigo(codigoChamado); //Valida se o mesmo existe: GarantirChamadoEncontrado(chamado); //Recupera o analista: var analista = _analistaRepository.GetByCodigo(codigoAnalista); //Valida se o mesmo existe: ValidatorHelper.GarantirNaoNulo(analista, Mensagens.AnalistaNaoEncontrado); //Valida se é do mesmo time do chamado: ValidatorHelper.GarantirIgual(chamado.Sistema.CodigoTimeSuporte, analista.CodigoTimeSuporte, Mensagens.ChamadoAnalistaNaoPertenceAoTimeSuporteResponsavel); //Chama a funcionalidade de colocar em atendimento do objeto: chamado.ColocarEmAtendimento(analista); //Salva as alterações do chamado: _chamadoRepository.Update(chamado); //Retorna o chamado tratado: return(chamado); }
//Funcionalidade de realizar a troca de um time de suporte. public void AlterarTimeSuporte(TimeSuporteEntity timeSuporte) { //Validação de negócio com o framework BM.Validations. ValidatorHelper.GarantirNaoNulo(timeSuporte, Mensagens.AnalistaTimeSuporteInvalido); //Set das propriedades: TimeSuporte = timeSuporte; CodigoTimeSuporte = timeSuporte.Codigo; }
//Construtor informando o que é obrigatório para o chamado existir. public ChamadoEntity(SistemaEntity sistema, ChamadoPrioridadeValueObject prioridade) { //Validação de negócio com o framework BM.Validations. ValidatorHelper.GarantirNaoNulo(sistema, Mensagens.ChamadoSistemaInvalido); //Set das propriedades: Codigo = new Guid(); Sistema = sistema; CodigoSistema = sistema.Codigo; Prioridade = prioridade; //Status inicial Status = ChamadoStatusValueObject.Aberto; }
//Funcionalidade do chamado para ser tratado por um analista public void ColocarEmAtendimento(AnalistaEntity analista) { //Validação de negócio com o framework BM.Validations. //Apenas chamados Em Aberto que podem ser atendidos: ValidatorHelper.GarantirVerdadeiro(Status == ChamadoStatusValueObject.Aberto, Mensagens.ChamadoJaFinalizadoOuEmAtendimentoPorUmAnalista); ValidatorHelper.GarantirNaoNulo(analista, Mensagens.ChamadoAnalistaEmAtendimentoInvalido); //Set das propriedades: AnalistaEmAtendimento = analista; CodigoAnalistaEmAtendimento = analista.Codigo; //Alteração do status (regra de negócio) Status = ChamadoStatusValueObject.EmAtendimento; //Definição da data (regra de negócio) DataInicioAtendimento = DateTime.Now; }
//Realização da abertura do chamado. public ChamadoEntity Abrir(int codigoSistema, ChamadoPrioridadeValueObject prioridade) { //Recupera o sitema: var sistema = _sistemaRepository.GetByCodigo(codigoSistema); //Valida se o mesmo existe: ValidatorHelper.GarantirNaoNulo(sistema, Mensagens.SistemaNaoEncontrado); //Cria o chamado: var chamado = new ChamadoEntity(sistema, prioridade); //Salva o chamado: _chamadoRepository.Add(chamado); //Retorna o chamado criado: return(chamado); }
//Cadastra um novo analista no sistema. public Entities.AnalistaEntity Cadastrar(string nome, int codigoTimeSuporte) { //Consulta o time de suporte. var timeSuporte = _timeSuporteRepository.GetByCodigo(codigoTimeSuporte); //Valida se foi encontrado. ValidatorHelper.GarantirNaoNulo(timeSuporte, Mensagens.TimeSuporteNaoEncontrado); //Cria a entidade. var entity = new Entities.AnalistaEntity(nome, timeSuporte); //Adiciona a entidade no banco. _analistaRepository.Add(entity); //Retorna a entidade já com o Codigo preenchido. return(entity); }
//Realiza a troca de time de um analista. public Entities.AnalistaEntity TrocarTimeSuporte(int codigo, int codigoTimeSuporte) { //Recupera o analista. var analista = _analistaRepository.GetByCodigo(codigo); //Valida se foi encontrado. ValidatorHelper.GarantirNaoNulo(analista, Mensagens.AnalistaNaoEncontrado); //Recupera o time de suporte. var timeSuporte = _timeSuporteRepository.GetByCodigo(codigo); //Valida se foi encontrado. ValidatorHelper.GarantirNaoNulo(timeSuporte, Mensagens.TimeSuporteNaoEncontrado); //Realiza a troca do time. analista.AlterarTimeSuporte(timeSuporte); //Atualiza na base de dados. _analistaRepository.Update(analista); return(analista); }
//Valida se o chamado não é nulo. //Método comum de validação de um chamado, evitando a replicação de código. private void GarantirChamadoEncontrado(ChamadoEntity chamado) { //Validação de negócio com o framework BM.Validations. ValidatorHelper.GarantirNaoNulo(chamado, Mensagens.ChamadoNaoEncontrado); }
//Método comum de validação de um analista, evitando a replicação de código. private void ValidarAnalista(Entities.AnalistaEntity analista) { //Validação de negócio com BM.Validations. ValidatorHelper.GarantirNaoNulo(analista, Mensagens.AnalistaInvalido); }
//Método comum de validação de um sistema, evitando a replicação de código. private void GarantirSistemaValido(Entities.SistemaEntity sistema) { //Validação de negócio com o framework BM.Validations. ValidatorHelper.GarantirNaoNulo(sistema, Mensagens.SistemaInvalido); }
//Método comum de validação de um sistema, evitando a replicação de código. private void GarantirTimeSuporteValido(Entities.TimeSuporteEntity timeSuporte) { //Validação de negócio com o framework BM.Validations. ValidatorHelper.GarantirNaoNulo(timeSuporte, Mensagens.TimeSuporteInvalido); }