Exemplo n.º 1
0
        public Atendimento SalvarAtualizarAtendimento(string chaveAcessoRemetente, Usuario usuarioDestinatario, string textoMensagem, Atendimento atendimentoEmAndamento)
        {
            var usuarioRemetente = _servicoUsuario.ObterPorChave(chaveAcessoRemetente);

            if (usuarioRemetente != null)
            {
                var atendimento = atendimentoEmAndamento != null?_repositorioConversa.Obter(atendimentoEmAndamento.Id) : null;

                var mensagem = new Mensagem(textoMensagem, usuarioRemetente, usuarioDestinatario);

                if (atendimento != null)
                {
                    atendimento.Mensagens.Add(mensagem);
                    _repositorioConversa.Atualizar(atendimento);
                }
                else
                {
                    var atendente = _servicoAtendente.ObterPorChaveAcesso(chaveAcessoRemetente);
                    atendimento = SalvarNovoAtendimento(usuarioDestinatario, atendimento, mensagem, atendente);

                    usuarioRemetente.Atendimentos.Add(atendimento);
                    usuarioDestinatario.Atendimentos.Add(atendimento);

                    _servicoUsuario.Atualizar(usuarioDestinatario.Id, usuarioDestinatario.Nome, usuarioDestinatario.Email, usuarioDestinatario.Telefone);
                    _servicoUsuario.Atualizar(usuarioRemetente.Id, usuarioRemetente.Nome, usuarioRemetente.Email, usuarioRemetente.Telefone);
                }

                return(atendimento);
            }
            else
            {
                throw new ValidacaoException("Remetente não encontrado");
            }
        }
 public UsuarioModel Atualizar([FromBody] AtualizarUsuarioRequest request) =>
 _servicoUsuario.Atualizar(request, IdUsuarioAutenticado);