public static CreateTicketResult CreateTicket(IClient currentUser, IResource res, IReservation rsv, int clientId, string reservationText, string subjectText, string messageText, string ticketType, Uri requestUri) { TicketPriorty pri = TicketPriortyFromString(ticketType); string bodyText = GetMessageBody(res, rsv, clientId, reservationText, messageText, ticketType, requestUri); Helpdesk.Service service = new Helpdesk.Service(ApiUrl, ApiKey); IClient primary; if (currentUser.PrimaryOrg) { primary = currentUser; } else { primary = ServiceProvider.Current.Data.Client.GetPrimary(currentUser.ClientID); } if (primary != null) { CreateTicketResult result = service.CreateTicket ( resourceId: res.ResourceID, name: currentUser.DisplayName, email: primary.Email, queue: res.HelpdeskEmail, subject: subjectText, message: bodyText, priority: pri ); int sent = SendHardwareIssueEmail(res, rsv, clientId, reservationText, subjectText, messageText, pri, requestUri); result.HardwareTicketEmailsSent = sent; return(result); } else { return(new CreateTicketResult(new Exception($"Cannot find primary ClientOrg for ClientID {currentUser.ClientID}"))); } }
public static string TicketPriorityToString(TicketPriorty pri) { string ticketType = "General Question"; switch (pri) { case TicketPriorty.GeneralQuestion: ticketType = "General Question"; break; case TicketPriorty.HardwareIssue: ticketType = "Hardware Issue"; break; case TicketPriorty.ProcessIssue: ticketType = "Process Issue"; break; } return(ticketType); }
public static TicketPriorty TicketPriortyFromString(string ticketType) { TicketPriorty pri = TicketPriorty.GeneralQuestion; switch (ticketType) { case "General Question": pri = TicketPriorty.GeneralQuestion; break; case "Hardware Issue": pri = TicketPriorty.HardwareIssue; break; case "Process Issue": pri = TicketPriorty.ProcessIssue; break; } return(pri); }
public CreateTicketResult CreateTicket(int resourceId, string name, string email, string queue, string subject, string message, TicketPriorty priority, bool test = false) { try { return(new CreateTicketResult( ResponseToTable( SendPostRequest(_ApiUrl, new { action = "add-ticket", resourceId, name = WebUtility.UrlEncode(name), email = WebUtility.UrlEncode(email), queue = WebUtility.UrlEncode(queue), subject = WebUtility.UrlEncode(subject), message = WebUtility.UrlEncode(message), priority = (int)priority, test }) ) )); } catch (Exception ex) { return(new CreateTicketResult(ex)); } }
public static int SendHardwareIssueEmail(IResource res, IReservation reservation, int clientId, string reservationText, string subject, string message, TicketPriorty pri, Uri requestUri) { if (pri == TicketPriorty.HardwareIssue) { string body = GetMessageBody(res, reservation, clientId, reservationText, message, TicketPriorityToString(pri), requestUri); return(SendHardwareIssueEmail(res, clientId, subject, body)); } return(0); }