예제 #1
0
        public ListOfStatusTickets ReadStatusTickets()
        {
            List <StatusTicket> statusTicketList  = new List <StatusTicket>();
            SqlConnection       connectToDateBase = new SqlConnection(pathOfDataBase);

            using (connectToDateBase)
            {
                SqlCommand command = new SqlCommand(
                    "SELECT STATUS_ID, USER_ID, TICKET_ID, STATUS_TICKET, DATE_CHANGE, TIME_CHANGE FROM [STATUSTICKETS];",
                    connectToDateBase);
                connectToDateBase.Open();
                SqlDataReader reader = command.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        StatusTicket statusTicket = new StatusTicket(reader.GetInt32(0), reader.GetInt32(1),
                                                                     reader.GetInt32(2), reader.GetString(3), reader.GetDateTime(4), reader.GetTimeSpan(5));
                        statusTicketList.Add(statusTicket);
                    }
                }
                reader.Close();
            }
            ListOfStatusTickets statusTickets = new ListOfStatusTickets(statusTicketList);

            return(statusTickets);
        }
예제 #2
0
        private async void ValidateTicket()
        {
            if (string.IsNullOrEmpty(TicketCode))
            {
                await dialogService.ShowMessage("Importante", "Ingresa Tu Codigo De Boleto!");

                StatusTicket = "";
                return;
            }

            // Realizamos el llamado al Servicio REST para Validar la Entrada
            IsRunning = true;
            IsEnabled = false;
            string controlador = string.Format("{0}{1}", "/Tickets/", TicketCode);
            var    response    = await apiService.GetTicket <Ticket>("http://checkticketsback.azurewebsites.net", "/api", controlador);

            if (!response.IsSuccess)
            {
                // Realizamos el llamado al Servicio REST para Registrar La Entrada
                controlador = string.Format("{0}", "/Tickets");
                Ticket ticket = new Ticket();
                ticket.TicketCode = TicketCode;
                ticket.DateTime   = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                ticket.UserId     = this.UserId;
                response          = await apiService.AddTicket("http://checkticketsback.azurewebsites.net", "/api", controlador, ticket);

                // Si Lo Pudo Crear
                Ticket dataTicket = (Ticket)response.Result;
                if (response.IsSuccess == false)
                {
                    IsRunning    = false;
                    IsEnabled    = true;
                    StatusTicket = response.Message;
                    StatusTicket = StatusTicket.Replace("@@", TicketCode);
                    TicketCode   = "";
                    StatusColor  = Color.Red;
                    return;
                }
                else
                {
                    IsRunning    = false;
                    IsEnabled    = true;
                    StatusTicket = response.Message;
                    StatusTicket = StatusTicket.Replace("@@", TicketCode);
                    TicketCode   = "";
                    StatusColor  = Color.Green;
                }
            }
            else
            {
                IsRunning    = false;
                IsEnabled    = true;
                StatusTicket = response.Message;
                StatusTicket = StatusTicket.Replace("@@", TicketCode);
                TicketCode   = "";
                StatusColor  = Color.Red;
                return;
            }
        }
예제 #3
0
        public void DeleteFromDatabase(StatusTicket statusTicket)
        {
            SqlConnection connectToDateBase = new SqlConnection(pathOfDataBase);

            using (connectToDateBase)
            {
                SqlCommand command = new SqlCommand(
                    ("DELETE FROM [STATUSTICKETS] WHERE @STATUS_ID = STATUS_ID;"),
                    connectToDateBase);
                command.Connection.Open();
                command.Parameters.AddWithValue("@STATUS_ID", statusTicket.StatusId);
                command.ExecuteNonQuery();
            }
        }
예제 #4
0
        public void EnviarEmailConfirmacao(string userTypeAgent,
                                           StatusTicket statusTicket,
                                           Classificacao classificacao,
                                           Ticket ticket,
                                           UsuarioCliente usuarioCliente,
                                           AtendenteEmpresa atendenteEmpresa,
                                           List <AtendenteEmpresa> listaAtendentes,
                                           string acao)
        {
            //Verifica se o novo atendimento foi criado pelo cliente ou pelo suporte
            if (userTypeAgent == "S") //suporte
            {
                if (acao == "insert")
                {
                    //Envia email ao cliente, confirmando que um novo ticket de atendimento foi cadastrado com sucesso pelo suporte
                    Emailer.EnviarEmailNovoTicketCliente(ticket, usuarioCliente);

                    //Envia email ao suporte, confirmando que um novo ticket de atendimento foi cadastrado com sucesso pelo suporte
                    //permitindo que todos os atendentes envolvidos, fiquem cientes do novo atendimento
                    Emailer.EnviarEmailNovoTicketSuporte(ticket, usuarioCliente, atendenteEmpresa, listaAtendentes);
                }
                else
                {
                    if (acao == "update")
                    {
                        //Envia email ao cliente, confirmando atualização do ticket
                        Emailer.EnviarEmailAlteracaoStatusTicketCliente(ticket, statusTicket, usuarioCliente);
                    }
                    else
                    {
                        //Envia email ao cliente, confirmando atualização da classificacao do atendimento
                        Emailer.EnviarEmailAlteracaoClassificacaoCliente(ticket, classificacao, usuarioCliente);
                    }
                }
            }
            else //cliente
            {
                if (acao == "insert")
                {
                    //Envia email ao suporte, confirmando que um novo ticket de atendimento foi cadastrado com sucesso pelo cliente
                    Emailer.EnviarEmailNovoTicketSuporte(ticket, usuarioCliente, listaAtendentes);
                }
                else
                {
                    //Envia email ao suporte, confirmando atualização do ticket
                    //Emailer.EnviarEmailMensagemSuportee(ticket.Id, usuarioCliente);
                }
            }
        }
예제 #5
0
        /// <summary>
        /// Método que envia email para o cliente
        /// </summary>
        /// <param name="ticket"></param>
        /// <param name="statusTicket"></param>
        /// <param name="usuarioCliente"></param>
        public static void EnviarEmailAlteracaoStatusTicketCliente(Ticket ticket, StatusTicket statusTicket, UsuarioCliente usuarioCliente)
        {
            var subject    = string.Empty;
            var emailFrom  = string.Empty;
            var emailReply = string.Empty;

            try
            {
                subject   = "Confirmação de alteração de status - Ticket #" + ticket.Id.ToString();
                emailFrom = ConfigurationManager.AppSettings["EmailSuporte"].ToString();

                Email.SendNetEmail(emailFrom, usuarioCliente.Email, null, Email.FormatarCorpoAlteracaoStatusTicketCliente(ticket, statusTicket, usuarioCliente), subject, true, System.Net.Mail.MailPriority.High);
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #6
0
        public void WriteInDatabase(StatusTicket statusTicket)
        {
            SqlConnection connectToDateBase = new SqlConnection(pathOfDataBase);

            using (connectToDateBase)
            {
                SqlCommand command = new SqlCommand(
                    ("INSERT INTO [STATUSTICKETS] (STATUS_ID, USER_ID, TICKET_ID, STATUS_TICKET, DATE_CHANGE, TIME_CHANGE)" +
                     "VALUES (@STATUS_ID, @USER_ID, @TICKET_ID, @STATUS_TICKET, @DATE_CHANGE, @TIME_CHANGE);"),
                    connectToDateBase);
                command.Connection.Open();
                command.Parameters.AddWithValue("@STATUS_ID", statusTicket.StatusId);
                command.Parameters.AddWithValue("@USER_ID", statusTicket.UserId);
                command.Parameters.AddWithValue("@TICKET_ID", statusTicket.TicketId);
                command.Parameters.AddWithValue("@STATUS_TICKET", statusTicket.StatusOfTicket);
                command.Parameters.AddWithValue("@DATE_CHANGE", statusTicket.DateChange);
                command.Parameters.AddWithValue("@TIME_CHANGE", statusTicket.TimeChange);
                command.ExecuteNonQuery();
            }
        }
예제 #7
0
        public void UpdateInDatabase(StatusTicket statusTicket)
        {
            SqlConnection connectToDateBase = new SqlConnection(pathOfDataBase);

            using (connectToDateBase)
            {
                SqlCommand command = new SqlCommand(
                    ("UPDATE [STATUSTICKET]" +
                     "SET STATUS_ID = @STATUS_ID, USER_ID = @USER_ID, TICKET_ID = @TICKET_ID, " +
                     "STATUS_TICKET = @STATUS_TICKET, DATE_CHANGE = @DATE_CHANGE, TIME_CHANGE = @TIME_CHANGE"
                     + "WHERE @STATUS_ID = STATUS_ID;"),
                    connectToDateBase);
                command.Connection.Open();
                command.Parameters.AddWithValue("@STATUS_ID", statusTicket.StatusId);
                command.Parameters.AddWithValue("@USER_ID", statusTicket.UserId);
                command.Parameters.AddWithValue("@TICKET_ID", statusTicket.TicketId);
                command.Parameters.AddWithValue("@STATUS_TICKET", statusTicket.StatusOfTicket);
                command.Parameters.AddWithValue("@DATE_CHANGE", statusTicket.DateChange);
                command.Parameters.AddWithValue("@TIME_CHANGE", statusTicket.TimeChange);
                command.ExecuteNonQuery();
            }
        }
 public bool Update(StatusTicket entity)
 {
     return(_repository.Update(entity));
 }
 public void Insert(ref StatusTicket entity)
 {
     _repository.Insert(ref entity);
 }
예제 #10
0
        /// <summary>
        /// Método que formata o corpo do email enviado ao cliente
        /// para alterações do status do atendimento (ticket)
        /// </summary>
        /// <param name="ticket"></param>
        /// <param name="statusTicket"></param>
        /// <param name="usuarioCliente"></param>
        /// <returns></returns>
        public static string FormatarCorpoAlteracaoStatusTicketCliente(Ticket ticket, StatusTicket statusTicket, UsuarioCliente usuarioCliente)
        {
            var corpo = new StringBuilder();

            var logo = ConfigurationManager.AppSettings["LogoCabecalho"];

            corpo.Append("<html>");
            corpo.Append("<head>");
            corpo.Append("<title>SAC - Sistema de Atendimento ao Cliente</title>");
            corpo.Append("<style type=\"text/css\">");
            corpo.Append("body");
            corpo.Append("{");
            corpo.Append("    margin:0px;");
            corpo.Append("    padding:0px;");
            corpo.Append("    font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;");
            corpo.Append("    height:100%;");
            corpo.Append("    width:100%;");
            corpo.Append("    font-size:11pt;");
            corpo.Append("}");
            corpo.Append("</style>");
            corpo.Append("</head>");
            corpo.Append("<body>");
            corpo.Append("<table cellspacing=\"4\" cellpadding=\"4\" border=\"0\" style=\"width:700px;\">");
            corpo.Append("<tr><td style=\"text-align: left; vertical-align: middle\"><img src=\"" + logo + "\" alt=\"\" /></td></tr>");
            corpo.Append("<tr><td><br />");
            corpo.Append("Prezado(a) " + usuarioCliente.Nome + ",<br /><br />");

            corpo.Append("Confirmada a alteração do status do atendimento - Ticket " + ticket.Titulo + " - (#" + ticket.Id + "), passando para o status " + statusTicket.Nome + ".<br /><br />");
            corpo.Append("Acesse o <a href='" + ConfigurationManager.AppSettings["SistemaAtendimentoAssinatura"] + "'>sistema de atendimento</a> para obter mais informações.<br /><br />");

            corpo.Append("Atenciosamente,<br />");
            corpo.Append(ConfigurationManager.AppSettings["TextoAssinatura"] + "<br />");
            corpo.Append("<a href='" + ConfigurationManager.AppSettings["UrlAssinatura"] + "'>" + ConfigurationManager.AppSettings["SiteAssinatura"] + "</a><br />");
            corpo.Append(ConfigurationManager.AppSettings["TelefonesAssinatura"] + "<br />");
            corpo.Append("</td></tr>");
            corpo.Append("</table>");
            corpo.Append("</body>");
            corpo.Append("</html>");

            return(corpo.ToString());
        }