Esempio n. 1
0
        public long? CreateUserTicket(long zenDeskId, string email)
        {
            ZendeskApi_v2.ZendeskApi api = new ZendeskApi_v2.ZendeskApi(_ZenDeskPath, _ZenDeskUser,
                    _ZenDeskApiKey, _ZenDeskLocal);

            string encodedEmail = HttpContext.Current.Server.UrlEncode(email);

            ZendeskApi_v2.Models.Search.SearchResults resultsOld = api.Search.SearchFor(string.Format("requester:{0}", encodedEmail));
            if (resultsOld != null && resultsOld.Count > 0)
                return resultsOld.Results[0].Id;

            // Ticket is not already created. lets create it now.

            IndividualTicketResponse response = api.Tickets.CreateTicket
            (
                new ZendeskApi_v2.Models.Tickets.Ticket
                {

                    Status = "new",
                    RequesterId= zenDeskId,
                    Subject = "Welcome to REOP",
                    Tags = new List<string>(){"reopchat"},
                    Comment = new ZendeskApi_v2.Models.Tickets.Comment
                    {
                        Body = "Welcome to REOP.",
                        Public = false,
                    }
                }
             );

            if (response == null || response.Ticket == null)
                return null;
            else
                return response.Ticket.Id;
        }
        public void GivesCorrectException()
        {
            var api = new ZendeskApi_v2.ZendeskApi(
                Settings.Site,
                Settings.AdminEmail,
                "Incorrect password");

            Assert.Throws <WebException>(() =>
            {
                api.Tickets.CreateTicket(new Ticket
                {
                    Subject = "subject"
                });
            });

            api = new ZendeskApi_v2.ZendeskApi(
                Settings.Site,
                Settings.AdminEmail,
                Settings.AdminPassword);

            try
            {
                api.Users.CreateUser(new ZendeskApi_v2.Models.Users.User()
                {
                    Name = "sdfsd sadfs", Email = ""
                });
            }
            catch (Exception e)
            {
                Assert.IsTrue(e.Message.Contains("Email: cannot be blank") && e.Data["jsonException"] != null && e.Data["jsonException"].ToString().Contains("Email: cannot be blank"));
            }
        }
Esempio n. 3
0
        public void GivesCorrectException()
        {
            var api = new ZendeskApi_v2.ZendeskApi(
                Settings.Site,
                Settings.Email,
                "Incorrect password");

            Assert.Throws<WebException>(() =>
            {
                api.Tickets.CreateTicket(new Ticket
                {
                    Subject = "subject"
                });
            });

            api = new ZendeskApi_v2.ZendeskApi(
                Settings.Site,
                Settings.Email,
                Settings.Password);

            try
            {
                api.Users.CreateUser(new ZendeskApi_v2.Models.Users.User() {Name = "sdfsd sadfs", Email = ""});
            }
            catch (Exception e)
            {
                Assert.IsTrue(e.Message.Contains("Email: cannot be blank") && e.Data["jsonException"] != null && e.Data["jsonException"].ToString().Contains("Email: cannot be blank"));
            }

        }
Esempio n. 4
0
 public ZendeskApi(string sitename, string username, string apiToken)
 {
     _api = new ZendeskApi_v2.ZendeskApi(
         Configuration.GetZendeskApiUri(sitename).AbsoluteUri,
         username,
         password: "",
         apiToken: apiToken);
 }
 public ZendeskApi(string sitename, string username, string apiToken)
 {
     _api = new ZendeskApi_v2.ZendeskApi(
         Configuration.GetZendeskApiUri(sitename).AbsoluteUri,
         username,
         password: "",
         apiToken: apiToken);
 }
Esempio n. 6
0
        public void CanUseTokenAccess()
        {
            var api    = new ZendeskApi_v2.ZendeskApi("https://csharpapi.zendesk.com/api/v2", Settings.AdminEmail, "", Settings.ApiToken, "en-us", null);
            var id     = Settings.SampleTicketId;
            var ticket = api.Tickets.GetTicket(id).Ticket;

            Assert.That(ticket, Is.Not.Null);
            Assert.That(id, Is.EqualTo(ticket.Id));
        }
Esempio n. 7
0
        public void CanUseTokenAccess()
        {
            var api = new ZendeskApi_v2.ZendeskApi("https://csharpapi.zendesk.com/api/v2", Settings.Email, "", Settings.ApiToken, "en-us", null);
            var id = Settings.SampleTicketId;
            var ticket = api.Tickets.GetTicket(id).Ticket;

            Assert.NotNull(ticket);
            Assert.AreEqual(ticket.Id, id);
        }
Esempio n. 8
0
        public void CanUseTokenAccess()
        {
            var api    = new ZendeskApi_v2.ZendeskApi("https://csharpapi.zendesk.com/api/v2", Settings.Email, "", Settings.ApiToken);
            var id     = Settings.SampleTicketId;
            var ticket = api.Tickets.GetTicket(id).Ticket;

            Assert.NotNull(ticket);
            Assert.AreEqual(ticket.Id, id);
        }
        public void AsyncGivesCorrectException()
        {
            var api = new ZendeskApi_v2.ZendeskApi(
                "http://csharpapi.zendesk.com/api/v2",
                Settings.AdminEmail,
                "Incorrect password");

            Assert.ThrowsAsync <WebException>(async() =>
            {
                await api.Tickets.CreateTicketAsync(new Ticket
                {
                    Subject = "subject"
                });
            });
        }
Esempio n. 10
0
        public void AsyncGivesCorrectException()
        {
            var api = new ZendeskApi_v2.ZendeskApi(
                "http://csharpapi.zendesk.com/api/v2", 
                Settings.Email, 
                "Incorrect password");

            Assert.ThrowsAsync<WebException>(async () =>
            {
                await api.Tickets.CreateTicketAsync(new Ticket
                {
                    Subject = "subject"
                });
            });

        }
Esempio n. 11
0
        public void CreatesUrisCorrectly()
        {
            var res = new ZendeskApi_v2.ZendeskApi("https://csharpapi.zendesk.com/api/v2", Settings.Email, Settings.Password);
            Assert.AreEqual(Settings.Site, res.ZendeskUrl);

            var res1 = new ZendeskApi_v2.ZendeskApi("csharpapi.zendesk.com/api/v2", Settings.Email, Settings.Password);
            Assert.AreEqual(Settings.Site, res1.ZendeskUrl);

            var res2 = new ZendeskApi_v2.ZendeskApi("csharpapi.zendesk.com", Settings.Email, Settings.Password);
            Assert.AreEqual(Settings.Site, res2.ZendeskUrl);

            var api3 = new ZendeskApi_v2.ZendeskApi("csharpapi", Settings.Email, Settings.Password);
            Assert.AreEqual(Settings.Site, api3.ZendeskUrl);

            var api4 = new ZendeskApi_v2.ZendeskApi("http://csharpapi.zendesk.com/api/v2", Settings.Email, Settings.Password);
            Assert.AreEqual(Settings.Site, api4.ZendeskUrl);
        }
Esempio n. 12
0
        public void AddComment(long zenDeskId, long zenDeskTicketId, string comment, string status = "open")
        {
            ZendeskApi_v2.ZendeskApi api = new ZendeskApi_v2.ZendeskApi(_ZenDeskPath, _ZenDeskUser,
                    _ZenDeskApiKey, _ZenDeskLocal);

            api.Tickets.UpdateTicket
            (
                new ZendeskApi_v2.Models.Tickets.Ticket
                {
                    Id = zenDeskTicketId,
                    Status = status,
                    //RequesterId= long.Parse(user.ZenmateId),
                },
                new ZendeskApi_v2.Models.Tickets.Comment
                {
                    Body = comment,
                    Public = false,
                }
             );
        }
Esempio n. 13
0
        /// <summary>
        /// Sends the events.
        /// </summary>
        /// <param name="events">The events that need to be send.</param>
        /// <remarks>
        /// <para>
        /// The subclass must override this method to process the buffered events.
        /// </para>
        /// </remarks>
        protected override void SendBuffer(LoggingEvent[] events)
        {
            ZenDesk client = new ZenDesk(Url, User, Password);
            Parallel.ForEach(events, loggingEvent =>
                {
                    StringWriter writer = new StringWriter();
                    Layout.Format(writer, loggingEvent);

                    Ticket ticket = new Ticket
                        {
                            Description = writer.ToString(),
                            Subject = string.Format("{0} {1} {2} {3}",
                            loggingEvent.TimeStamp,
                            loggingEvent.ThreadName,
                            loggingEvent.Level,
                            loggingEvent.LoggerName),
                            Tags = Tags.Split(';'),
                            RequesterId = RequesterId
                        };
                    client.Tickets.CreateTicket(ticket);
                });
        }
Esempio n. 14
0
        public void CreatesUrisCorrectly()
        {
            var res = new ZendeskApi_v2.ZendeskApi("https://csharpapi.zendesk.com/api/v2", Settings.AdminEmail, Settings.AdminPassword);

            Assert.That(res.ZendeskUrl, Is.EqualTo(Settings.Site));

            var res1 = new ZendeskApi_v2.ZendeskApi("csharpapi.zendesk.com/api/v2", Settings.AdminEmail, Settings.AdminPassword);

            Assert.That(res1.ZendeskUrl, Is.EqualTo(Settings.Site));

            var res2 = new ZendeskApi_v2.ZendeskApi("csharpapi.zendesk.com", Settings.AdminEmail, Settings.AdminPassword);

            Assert.That(res2.ZendeskUrl, Is.EqualTo(Settings.Site));

            var api3 = new ZendeskApi_v2.ZendeskApi("csharpapi", Settings.AdminEmail, Settings.AdminPassword);

            Assert.That(api3.ZendeskUrl, Is.EqualTo(Settings.Site));

            var api4 = new ZendeskApi_v2.ZendeskApi("http://csharpapi.zendesk.com/api/v2", Settings.AdminEmail, Settings.AdminPassword);

            Assert.That(api4.ZendeskUrl, Is.EqualTo(Settings.Site));
        }
Esempio n. 15
0
        public void CreatesUrisCorrectly()
        {
            var res = new ZendeskApi_v2.ZendeskApi("https://csharpapi.zendesk.com/api/v2", Settings.Email, Settings.Password);

            Assert.AreEqual(Settings.Site, res.ZendeskUrl);

            var res1 = new ZendeskApi_v2.ZendeskApi("csharpapi.zendesk.com/api/v2", Settings.Email, Settings.Password);

            Assert.AreEqual(Settings.Site, res1.ZendeskUrl);

            var res2 = new ZendeskApi_v2.ZendeskApi("csharpapi.zendesk.com", Settings.Email, Settings.Password);

            Assert.AreEqual(Settings.Site, res2.ZendeskUrl);

            var api3 = new ZendeskApi_v2.ZendeskApi("csharpapi", Settings.Email, Settings.Password);

            Assert.AreEqual(Settings.Site, api3.ZendeskUrl);

            var api4 = new ZendeskApi_v2.ZendeskApi("http://csharpapi.zendesk.com/api/v2", Settings.Email, Settings.Password);

            Assert.AreEqual(Settings.Site, api4.ZendeskUrl);
        }
Esempio n. 16
0
        /// <summary>
        /// Sends the events.
        /// </summary>
        /// <param name="events">The events that need to be send.</param>
        /// <remarks>
        /// <para>
        /// The subclass must override this method to process the buffered events.
        /// </para>
        /// </remarks>
        protected override void SendBuffer(LoggingEvent[] events)
        {
            ZenDesk client = new ZenDesk(Url, User, Password);

            Parallel.ForEach(events, loggingEvent =>
            {
                StringWriter writer = new StringWriter();
                Layout.Format(writer, loggingEvent);

                Ticket ticket = new Ticket
                {
                    Description = writer.ToString(),
                    Subject     = string.Format("{0} {1} {2} {3}",
                                                loggingEvent.TimeStamp,
                                                loggingEvent.ThreadName,
                                                loggingEvent.Level,
                                                loggingEvent.LoggerName),
                    Tags        = Tags.Split(';'),
                    RequesterId = RequesterId
                };
                client.Tickets.CreateTicket(ticket);
            });
        }
Esempio n. 17
0
 public long? GetUserId(string email)
 {
     string encodedEmail = HttpContext.Current.Server.UrlEncode(email);
     ZendeskApi_v2.ZendeskApi api = new ZendeskApi_v2.ZendeskApi(_ZenDeskPath, _ZenDeskUser,
             _ZenDeskApiKey, _ZenDeskLocal);
     ZendeskApi_v2.Models.Users.GroupUserResponse response =
                             api.Users.SearchByEmail(encodedEmail);
     if (response == null || response.Count == 0)
         return null;
     else
         return response.Users[0].Id;
 }
Esempio n. 18
0
        public ActionResult contact(ContactUsViewModel model)
        {
            ViewData["Page"] = "contact";
            if (ModelState.IsValid)
            {
                if (_zendeskSettings.enable)
                {
                    ZendeskApi_v2.ZendeskApi api = new ZendeskApi_v2.ZendeskApi(_zendeskSettings.url, _zendeskSettings.user,
                                                                                _zendeskSettings.token, _zendeskSettings.locale);

                    string encodedEmail = System.Net.WebUtility.UrlEncode(model.EmailAddress);
                    long   id           = 0;

                    /*ZendeskApi_v2.Models.Search.SearchResults resultsOld = api.Search.SearchFor(string.Format("requester:{0}", encodedEmail));
                     *
                     * if (resultsOld != null && resultsOld.Count > 0)
                     *  id = resultsOld.Results[0].Id;*/

                    // Ticket is not already created. lets create it now.
                    try
                    {
                        IndividualTicketResponse response = api.Tickets.CreateTicket
                                                            (
                            new ZendeskApi_v2.Models.Tickets.Ticket
                        {
                            Status  = "new",
                            Subject = "Contact Us",
                            Tags    = new List <string>()
                            {
                                "contactus"
                            },
                            Comment = new ZendeskApi_v2.Models.Tickets.Comment
                            {
                                Body   = model.Message,
                                Public = false,
                            },
                            Requester = new Requester()
                            {
                                LocaleId = 1,
                                Name     = model.SenderName,
                                Email    = model.EmailAddress
                            },
                            Priority = "normal"
                        }
                                                            );

                        if (response == null || response.Ticket == null)
                        {
                            return(null);
                        }
                        else
                        {
                            id = (long)response.Ticket.Id;
                        }

                        model.Message   = "Thank you for your request!  A member of the our team will be in touch with you shortly.";
                        model.AlertType = AlertTypes.Success;
                    }
                    catch (Exception ex)
                    {
                        // generate log
                        Jugnoon.BLL.ErrorLgBLL.Add(_context, "Problem occured while submitting your request, please try again.", "/contact", ex.Message);

                        model.Message = "Problem occured while submitting your request, please try again.";
                    }
                }
                else
                {
                    // Normal Email Sending Procedure
                    _emailSender.ContactUsEmailAsync(_context, Configs.GeneralSettings.admin_mail, model);

                    model.Message   = SiteConfig.generalLocalizer["_message_sent"].Value;
                    model.AlertType = AlertTypes.Success;
                }


                return(View("~/Views/Home/index.cshtml", model));
            }

            return(View(model));
        }
Esempio n. 19
0
        public long? GetUserTicket(string email)
        {
            ZendeskApi_v2.ZendeskApi api = new ZendeskApi_v2.ZendeskApi(_ZenDeskPath, _ZenDeskUser,
                    _ZenDeskApiKey, _ZenDeskLocal);

            string encodedEmail = HttpContext.Current.Server.UrlEncode(email);

            ZendeskApi_v2.Models.Search.SearchResults results = api.Search.SearchFor(string.Format("requester:{0}", encodedEmail));
            if (results == null || results.Count == 0)
                return null;
            return (int)results.Results[0].Id;
        }
Esempio n. 20
0
        private long? CreateUser(User user, string email, string type)
        {
            if (string.IsNullOrWhiteSpace(type))
                throw new MissingFieldException("User's type cannot be empty for zendesk.");

            string encodedEmail = HttpContext.Current.Server.UrlEncode(email);
            ZendeskApi_v2.ZendeskApi api = new ZendeskApi_v2.ZendeskApi(_ZenDeskPath, _ZenDeskUser,
                    _ZenDeskApiKey, _ZenDeskLocal);

            // Double check if user is already created on zendesk...
            ZendeskApi_v2.Models.Users.GroupUserResponse responseOld =
                                    api.Users.SearchByEmail(encodedEmail);
            if (responseOld != null && responseOld.Count > 0)
                return responseOld.Users[0].Id;

            // The user is not previously registered with zen. Lets register now.
            ZendeskApi_v2.Models.Users.User zenUser = new ZendeskApi_v2.Models.Users.User();
            zenUser.Active = true;
            zenUser.Alias = user.DisplayName;
            zenUser.Details = type;
            //zenUser.Photo = new ZendeskApi_v2.Models.Users.Photo { ContentUrl = user.Photo };
            zenUser.Email = user.Credential.Email;
            zenUser.Name = user.DisplayName;
            zenUser.ExternalId = user.UserId;
            zenUser.Verified = true;
            zenUser.Role = type.Trim().ToLower();
            ZendeskApi_v2.Models.Users.IndividualUserResponse response = api.Users.CreateUser(zenUser);
            if (response.User == null)
                return null;
            return response.User.Id;
        }