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); }
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; } }
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(); } }
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); } } }
/// <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; } }
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(); } }
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); }
/// <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()); }