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