예제 #1
0
        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}")));
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
파일: Service.cs 프로젝트: lurienanofab/lnf
 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));
     }
 }
예제 #5
0
        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);
        }