Пример #1
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            this.SetContentView(Resource.Layout.LoginActivityLayout);

            textUsername         = this.FindViewById <EditText>(Resource.Id.textUsername);
            textPassword         = this.FindViewById <EditText>(Resource.Id.textPassword);
            buttonLogin          = this.FindViewById <Android.Widget.Button>(Resource.Id.buttonLogin);
            textLoginInfo        = this.FindViewById <TextView>(Resource.Id.textLoginInfo);
            textLoginInfosubtext = this.FindViewById <TextView>(Resource.Id.textLoginInfosubtext);

            this.Title = "User Login";



            buttonLogin.Click += async(sender, e) =>
            {
                var user     = string.Empty;
                var password = string.Empty;

                this.RunOnUiThread(() => { user = this.textUsername.Text; });
                this.RunOnUiThread(() => { password = this.textPassword.Text; });

                username = user;
                userpass = password;


                //AzureService service = new AzureService();
                var api = new ZendeskApi("https://greenworkstools1552039260.zendesk.com/api/v2", user, password, "");

                this.textLoginInfo.Text = "Connecting to Zendesk...";

                IList <TicketField> allfields = new List <TicketField>();

                try
                {
                    //retrieve ticket fields from Zendesk
                    GroupTicketFieldResponse fields = await api.Tickets.GetTicketFieldsAsync();

                    foreach (TicketField fielddata in fields.TicketFields)
                    {
                        allfields.Add(fielddata);
                    }
                    if (!String.IsNullOrEmpty(allfields[2].Title))
                    {
                        this.textLoginInfo.Text = "Succesfully connected and validated user!";
                        await Task.Delay(1000);

                        StartActivity(typeof(DecoderActivity));
                    }
                    else
                    {
                        this.textLoginInfo.Text = "Unable to retrieve ticket fields!";
                    }
                }
                catch (WebException ex)
                {
                    this.textLoginInfo.Text        = "Invalid Username or Password";
                    this.textLoginInfosubtext.Text = ex.Message;
                    await Task.Delay(2000);

                    this.textLoginInfo.Text        = "Enter a valid Username and Password";
                    this.textLoginInfosubtext.Text = "";
                    //throw new WebException(ex.Message + " " + ex.Response.Headers.ToString(), ex);
                }

                /*if (this.textUsername.Text == service.textUsername)
                 * {
                 *  if (this.textPassword.Text == service.textPassword)
                 *  {
                 *      this.textLoginInfo.Text = "User Found!";
                 *
                 *      currentUser.Name = service.textName;
                 *      currentUser.Date = DateTime.Now;
                 *
                 *      this.textLoginInfo.Text = "Succesfully Logged in!";
                 *      StartActivity(typeof(DecoderActivity));
                 *  }
                 *  else
                 *  {
                 *      this.textLoginInfo.Text = "Invalid Password";
                 *  }
                 * }
                 * else
                 * {
                 *  this.textLoginInfo.Text = "Unrecognized Username";
                 * }*/
            };
        }
Пример #2
0
        static void Main()
        {
            Console.WriteLine("Connecting to Zendesk");

            //set up the API
            var api = new ZendeskApi("https://greenworkstools1552039260.zendesk.com/api/v2", "*****@*****.**", "713apipassword");

            Console.WriteLine("Retrieving List of Fields");

            //create an empty list of CustomField types to be populated with Custom Field IDs and Values
            IList <CustomField> customfields = new List <CustomField>();

            IList <TicketField> allfields = new List <TicketField>();

            //retrieve ticket fields from Zendesk
            GroupTicketFieldResponse fields = api.Tickets.GetTicketFields();

            //populate field list with fields from Zendesk
            foreach (TicketField fielddata in fields.TicketFields)
            {
                allfields.Add(fielddata);
            }

            Console.WriteLine("Fields retrieved succesfully");

            //print fields to make sure list of fields was retrieved succesfully

            /*foreach (TicketField fieldlistdata in allfields)
             * {
             *  Console.WriteLine("The Ticket Field ID is: " + fieldlistdata.Id);
             *  Console.WriteLine("The Ticket Field Name is: " + fieldlistdata.TitleInPortal);
             *  Console.WriteLine("The Ticket Field Type is : " + fieldlistdata.Type);
             *  Console.WriteLine("This Ticket Field is Required :" + fieldlistdata.Required);
             *  Console.WriteLine("Field List Index of: " + allfields.IndexOf(fieldlistdata));
             * }*/

            while (true)
            {
                Console.WriteLine("Enter 'search' to search a ticket, 'create' to create a ticket, or 'quit' to exit program");
                string task = Console.ReadLine();



                if (task.Equals("create"))
                {
                    long?tickettypeid = 0;
                    bool creating     = true;
                    while (creating == true)
                    {
                        Console.WriteLine("Choose type of ticket:");
                        Console.WriteLine("Ticket form options are:");
                        Console.WriteLine("1. -- Contact Us");
                        Console.WriteLine("2. -- Warranty Request");
                        Console.WriteLine("Enter the number of the ticket form: (1 or 2):");
                        string tickettype = Console.ReadLine();
                        if (tickettype.Equals("1"))
                        {
                            tickettypeid = 360000343991;
                        }
                        else if (tickettype.Equals("2"))
                        {
                            tickettypeid = 360000437791;
                        }
                        else
                        {
                            Console.WriteLine("That's not a valid entry");
                        }

                        Console.WriteLine("Enter the email address for correspondance:");
                        string email = Console.ReadLine();

                        Console.WriteLine("Enter the Subject for your ticket:");
                        string subject = Console.ReadLine();

                        Console.WriteLine("Enter the Description:");
                        string description = Console.ReadLine();

                        foreach (TicketField ticketField in allfields)
                        {
                            if (allfields.IndexOf(ticketField) > 6 && ticketField.Required == true) //testing using ONLY required custom fields
                            {
                                long?  fieldid  = ticketField.Id;
                                bool   required = ticketField.Required;
                                string type     = ticketField.Type;
                                string name     = ticketField.TitleInPortal;
                                Console.WriteLine("Enter the value for " + name);
                                //commented out these lines, as we're just testing fields that are required

                                /*if (required == true)
                                 * {
                                 *  Console.WriteLine("This Field is required!");
                                 * }
                                 * else
                                 * {
                                 *  Console.WriteLine("This fiend is NOT required");
                                 * }*/
                                if (type.Equals("tagger"))
                                {
                                    Console.WriteLine("This field is a Dropdown Field. Input MUST be a dropdown TAG");
                                    Console.WriteLine("Example: 'tecnical_question' for custom field 'Topic'");
                                }
                                else if (fieldid.Equals(360019766211))
                                {
                                    Console.WriteLine("Already entered email address earlier");
                                    CustomField emailaddress = new CustomField()
                                    {
                                        Id = fieldid, Value = email
                                    };
                                    customfields.Add(emailaddress);
                                    continue;
                                }
                                else
                                {
                                    Console.WriteLine("This field takes a data type of: " + type);
                                }
                                var         entry        = Console.ReadLine();
                                CustomField enteredfield = new CustomField()
                                {
                                    Id = fieldid, Value = entry
                                };
                                customfields.Add(enteredfield);
                                continue;
                            }
                            else
                            {
                                continue;
                            }
                        }
                        //List all the entries to check if values actually got saved and match the correct IDs
                        //commented out as indexes do not currently match

                        /*foreach (CustomField fieldlistitem in customfields)
                         * {
                         *  //increase index by 7, since the first 7 fields are Zendesk system fields, and unimportant to testing
                         *  int index = customfields.IndexOf(fieldlistitem) + 7;
                         *  if (fieldlistitem.Value != null)
                         *  {
                         *
                         *      Console.WriteLine("Custom Field: " + allfields[index].Title + "  Value: " + fieldlistitem.Value.ToString() + "  Field ID: " + allfields[index].Id);
                         *  }
                         *  else
                         *  {
                         *      Console.WriteLine("Custom Field: " + allfields[index].Title + "  VALUE IS NULL FOR THIS ENTRY.  Field ID: " + allfields[index].Id);
                         *  }
                         * }*/
                        Console.WriteLine("Testing complete, enter 'q' to quit without uploading, 'upload' to upload ticket, or 'add' to add an attachment");
                        string quitentry = Console.ReadLine();

                        if (quitentry.Equals('q'))
                        {
                            break;
                        }
                        else if (quitentry.Equals("upload"))
                        {
                            var ticket = new Ticket()
                            {
                                Subject      = subject,
                                TicketFormId = 360000437791,
                                Comment      = new Comment()
                                {
                                    Body = description, Public = true
                                },
                                Priority  = TicketPriorities.Normal,
                                Requester = new Requester()
                                {
                                    Email = email
                                },
                                CustomFields = customfields
                            };
                            //create the new ticket
                            var res = api.Tickets.CreateTicket(ticket);
                            Console.WriteLine("Uploaded Ticket. Program quits after 5 second delay");
                            Thread.Sleep(5000);
                            creating = false;
                        }
                        else if (quitentry.Equals("add"))
                        {
                            var selectimage = new SelectFile();
                            selectimage.FileSelect();
                            Console.WriteLine("Selected File Path: " + selectimage.fileSelected);
                            if (!selectimage.fileSelected.Equals(String.Empty))
                            {
                                Console.WriteLine("Selected Image Path: " + selectimage.fileSelected);
                                var attachment = api.Attachments.UploadAttachment(new ZenFile()
                                {
                                    ContentType = "image/png",
                                    FileName    = selectimage.fileSelected,
                                    FileData    = File.ReadAllBytes(selectimage.fileSelected)
                                });
                                var ticket = new Ticket()
                                {
                                    Subject      = subject,
                                    Priority     = TicketPriorities.Normal,
                                    TicketFormId = tickettypeid,
                                    Comment      = new Comment()
                                    {
                                        Body    = description,
                                        Public  = true,
                                        Uploads = new List <string>()
                                        {
                                            attachment.Token
                                        }                                                 //Add the attachment token here
                                    },
                                    Requester = new Requester()
                                    {
                                        Email = email
                                    },
                                    CustomFields = customfields
                                };
                                var res = api.Tickets.CreateTicket(ticket);
                                Console.WriteLine("Uploaded Ticket. Program quits after 5 second delay");
                                Thread.Sleep(5000);
                                creating = false;
                            }
                            else
                            {
                                Console.WriteLine("No File Selected!");
                            }
                        }
                    }
                }

                //Search for an existing ticket
                else if (task.Equals("search"))
                {
                    bool searching = true;
                    while (searching == true)
                    {
                        Console.WriteLine("Enter the ID to search");
                        string inputid  = Console.ReadLine();
                        long   ticketid = Convert.ToInt64(inputid);

                        IndividualTicketResponse returnedticket = api.Tickets.GetTicket(ticketid);

                        //print ticket fields
                        Console.WriteLine("Ticket Title: " + returnedticket.Ticket.Subject.ToString());
                        Console.WriteLine("Ticket Description: " + returnedticket.Ticket.Description.ToString());
                        foreach (CustomField returnedfields in returnedticket.Ticket.CustomFields)
                        {
                            Console.WriteLine("Ticket Custom Field ID: " + returnedfields.Id.ToString());
                            if (returnedfields.Value == null)
                            {
                                Console.WriteLine("This value is null");
                            }
                            else
                            {
                                Console.WriteLine("Ticket Custom Field Value: " + returnedfields.Value.ToString());
                            }
                        }
                        break;
                    }

                    Console.WriteLine("Press 'q' to quit search function");
                    string entry = Console.ReadLine();

                    if (entry.Equals('q'))
                    {
                        searching = false;
                    }
                }
                else if (task.Equals("quit"))
                {
                    break;
                }
            }
        }
Пример #3
0
        static void Main()
        {
            Console.WriteLine("Connecting to Zendesk");

            //set up the API
            var api = new ZendeskApi("https://greenworkstools1552039260.zendesk.com/api/v2", "*****@*****.**", "713apipassword");

            Console.WriteLine("Retrieving List of Fields");

            //create an empty list of CustomField types to be populated with Custom Field IDs and Values
            IList <CustomField> customfields = new List <CustomField>();

            IList <TicketField> allfields = new List <TicketField>();

            //retrieve ticket fields from Zendesk
            GroupTicketFieldResponse fields = api.Tickets.GetTicketFields();

            //populate field list with fields from Zendesk
            foreach (TicketField fielddata in fields.TicketFields)
            {
                allfields.Add(fielddata);
            }

            Console.WriteLine("Fields retrieved succesfully");

            //print fields to make sure list of fields was retrieved succesfully

            /*foreach (TicketField fieldlistdata in allfields)
             * {
             *  Console.WriteLine("The Ticket Field ID is: " + fieldlistdata.Id);
             *  Console.WriteLine("The Ticket Field Name is: " + fieldlistdata.TitleInPortal);
             *  Console.WriteLine("The Ticket Field Type is : " + fieldlistdata.Type);
             *  Console.WriteLine("This Ticket Field is Required :" + fieldlistdata.Required);
             *  Console.WriteLine("Field List Index of: " + allfields.IndexOf(fieldlistdata));
             * }*/


            Console.WriteLine("Enter 'search' to search a ticket, or 'create' to create a ticket");
            string task = Console.ReadLine();



            if (task == "create")
            {
                while (true)
                {
                    Console.WriteLine("Enter the Subject for your ticket:");
                    string subject = Console.ReadLine();

                    Console.WriteLine("Enter the Description:");
                    string description = Console.ReadLine();

                    foreach (TicketField ticketField in allfields)
                    {
                        if (allfields.IndexOf(ticketField) > 6 && ticketField.Required == true) //testing using ONLY required custom fields
                        {
                            long?  fieldid  = ticketField.Id;
                            bool   required = ticketField.Required;
                            string type     = ticketField.Type;
                            string name     = ticketField.TitleInPortal;
                            Console.WriteLine("Enter the value for " + name);
                            //commented out these lines, as we're just testing fields that are required

                            /*if (required == true)
                             * {
                             *  Console.WriteLine("This Field is required!");
                             * }
                             * else
                             * {
                             *  Console.WriteLine("This fiend is NOT required");
                             * }*/
                            if (type == "tagger")
                            {
                                Console.WriteLine("This field is a Dropdown Field. Input MUST be a dropdown TAG");
                                Console.WriteLine("Example: 'tecnical_question' for custom field 'Topic'");
                            }
                            else
                            {
                                Console.WriteLine("This field takes a data type of: " + type);
                            }
                            var         entry        = Console.ReadLine();
                            CustomField enteredfield = new CustomField()
                            {
                                Id = fieldid, Value = entry
                            };
                            customfields.Add(enteredfield);
                            continue;
                        }
                        else
                        {
                            continue;
                        }
                    }
                    //List all the entries to check if values actually got saved and match the correct IDs
                    //commented out as indexes do not currently match

                    /*foreach (CustomField fieldlistitem in customfields)
                     * {
                     *  //increase index by 7, since the first 7 fields are Zendesk system fields, and unimportant to testing
                     *  int index = customfields.IndexOf(fieldlistitem) + 7;
                     *  if (fieldlistitem.Value != null)
                     *  {
                     *
                     *      Console.WriteLine("Custom Field: " + allfields[index].Title + "  Value: " + fieldlistitem.Value.ToString() + "  Field ID: " + allfields[index].Id);
                     *  }
                     *  else
                     *  {
                     *      Console.WriteLine("Custom Field: " + allfields[index].Title + "  VALUE IS NULL FOR THIS ENTRY.  Field ID: " + allfields[index].Id);
                     *  }
                     * }*/
                    Console.WriteLine("Testing complete, enter 'q' to quit without uploading or 'upload' to upload ticket");
                    string quitentry = Console.ReadLine();

                    if (quitentry == "q")
                    {
                        break;
                    }
                    if (quitentry == "upload")
                    {
                        var ticket = new Ticket()
                        {
                            Subject      = subject,
                            TicketFormId = 360000437791,
                            Comment      = new Comment()
                            {
                                Body = description
                            },
                            Priority  = "Normal",
                            Requester = new Requester()
                            {
                                Email = "*****@*****.**"
                            },
                            CustomFields = customfields
                        };
                        //create the new ticket
                        var res = api.Tickets.CreateTicket(ticket).Ticket;
                        Console.WriteLine("Uploaded Ticket. Program quits after 5 second delay");
                        Thread.Sleep(5000);
                        break;
                    }
                }

                //Search for an existing ticket
                if (task == "search")
                {
                    while (true)
                    {
                        Console.WriteLine("Enter the ID to search");
                        string inputid  = Console.ReadLine();
                        long   ticketid = Convert.ToInt64(inputid);

                        IndividualTicketResponse returnedticket = api.Tickets.GetTicket(ticketid);

                        //print ticket fields
                        Console.WriteLine("Ticket Title: " + returnedticket.Ticket.Subject.ToString());
                        Console.WriteLine("Ticket Description: " + returnedticket.Ticket.Description.ToString());
                        foreach (CustomField returnedfields in returnedticket.Ticket.CustomFields)
                        {
                            Console.WriteLine("Ticket Custom Field ID: " + returnedfields.Id.ToString());
                            if (returnedfields.Value == null)
                            {
                                Console.WriteLine("This value is null");
                            }
                            else
                            {
                                Console.WriteLine("Ticket Custom Field Value: " + returnedfields.Value.ToString());
                            }
                        }

                        Console.WriteLine("Press 'q' to quit");
                        string entry = Console.ReadLine();

                        if (entry == "q")
                        {
                            break;
                        }
                    }
                }
            }
        }