public IEnumerable <TicketMensagemResponse> GetAllByTicketId(TicketMensagensRequest request)
        {
            List <TicketMensagemResponse> result;
            var sql = string.Empty;

            if (request.IdCliente == 0)
            {
                sql = @"SELECT
                                        tm.id,
                                        tm.descricao AS Descricao, 
                                        tm.data_hora_mensagem AS Data, 
                                        tm.interno AS Interno,
                                        CASE
                                            WHEN uc.nome IS NOT NULL THEN uc.nome
                                            WHEN ae.nome IS NOT NULL THEN ae.nome
                                        END AS Autor,
                                        STUFF((SELECT '|' + nome FROM anexo WHERE ticketmensagemid = tm.id for XML PATH('')), 1, 1, '') AS Anexos
                            FROM        Ticket_Mensagem tm
                            LEFT JOIN   Usuario_Cliente uc on tm.usuarioclienteid = uc.id
                            LEFT JOIN	Atendente_Empresa ae on tm.atendenteempresaid = ae.id
                            WHERE tm.ticketid = " + request.IdTicket + " ORDER BY tm.data_hora_mensagem DESC";
            }
            else
            {
                sql = @"SELECT
                                        tm.id,
                                        tm.descricao AS Descricao, 
                                        tm.data_hora_mensagem AS Data, 
                                        tm.interno AS Interno,
                                        CASE
                                            WHEN uc.nome IS NOT NULL THEN uc.nome
                                            WHEN ae.nome IS NOT NULL THEN ae.nome
                                        END AS Autor,
                                        STUFF((SELECT '|' + nome FROM anexo WHERE ticketmensagemid = tm.id for XML PATH('')), 1, 1, '') AS Anexos
                            FROM        Ticket_Mensagem tm
                            LEFT JOIN   Usuario_Cliente uc on tm.usuarioclienteid = uc.id
                            LEFT JOIN	Atendente_Empresa ae on tm.atendenteempresaid = ae.id
                            WHERE tm.ticketid = " + request.IdTicket + " AND tm.interno = 0 ORDER BY tm.data_hora_mensagem DESC";
            }

            try
            {
                using (var conn = CreateConnection())
                {
                    result = conn.Query <TicketMensagemResponse>(sql).ToList();
                }

                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        public IHttpActionResult GetAllByTicketId(TicketMensagensRequest request)
        {
            try
            {
                //Mapeia os dados da fonte (source class) para o destino (destiny class)
                IEnumerable <TicketMensagemResponse> lista = _ticketMensagemBusiness.GetAllByTicketId(request).ToList();

                var totalRegistros = lista.Count();

                //Monta response
                _result = Ok(Retorno <IEnumerable <TicketMensagemResponse> > .Criar(true, "Consulta Realizada Com Sucesso", lista, totalRegistros, totalRegistros));

                //Retorna o response
                return(_result);
            }
            catch (Exception)
            {
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }
 public IEnumerable <TicketMensagemResponse> GetAllByTicketId(TicketMensagensRequest request)
 {
     return(_repository.GetAllByTicketId(request));
 }