private static void AddFreshDesk(IServiceCollection services, FreshDeskSettings freshDeskSettings) { if (freshDeskSettings is null) { throw new ArgumentNullException(nameof(freshDeskSettings)); } // TODO: update tests so these can be re-enabled //if (string.IsNullOrEmpty(freshDeskSettings.Domain)) // throw new ArgumentException("FreshDesk Domain must be set", nameof(freshDeskSettings)); //if (string.IsNullOrEmpty(freshDeskSettings.APIKey)) // throw new ArgumentException("FreshDesk APIKey must be set", nameof(freshDeskSettings)); var credentials = new FreshdeskCredentials(freshDeskSettings.APIKey); var config = new FreshdeskConfig { Domain = freshDeskSettings.Domain, Credentials = credentials, MultiCompanySupport = true, RetryWhenThrottled = true }; #pragma warning disable CA2000 // Dispose objects before losing scope - Shouldn't be disposed as all it does is dispose the HttpClient var freshDeskClient = new FreshdeskClient(config); #pragma warning restore CA2000 // Dispose objects before losing scope services.AddSingleton(freshDeskClient); }
public FreshDeskSupportSystem( FreshdeskClient freshdeskClient, IMapper mapper) { _freshdeskClient = freshdeskClient; _mapper = mapper; }
public async Task ListTickets() { using (var cn = GetConnection()) { var org = cn.FindWhere <Organization>(new { name = "aerie" }); var client = new FreshdeskClient(new DataAccess(_config), org.Id, org.FreshdeskUrl, org.FreshdeskApiKey); var tickets = await client.ListTicketsAsync(); Assert.IsTrue(tickets.Any()); } }
private static async Task GetAllContactsAsync(string domain, string apiKey) { var config = new FreshdeskConfig { Domain = domain, Credentials = new FreshdeskCredentials(apiKey), RetryWhenThrottled = true }; using (var client = new FreshdeskClient(config)) { try { var result = await client.Contacts.GetListAsync(); var account = await client.Companies.CreateAsync(new FreshdeskCompany { Name = "Fake Company Name, Inc." }); var contact = await client.Contacts.CreateAsync(new FreshdeskContact { Active = true, Name = "Mr User Name", Email = "*****@*****.**", CompanyId = account.Id }); var ticket = await client.Tickets.CreateAsync(new FreshdeskTicket { RequesterId = contact.Id, Subject = "Test", Description = "This is a test issue", FrDueBy = DateTime.UtcNow + TimeSpan.FromHours(5), DueBy = DateTime.UtcNow + TimeSpan.FromDays(2) }); } catch (Exception ex) { throw; } } }
public ChannelApiClient(FreshdeskClient client) { _client = client; }
public FreshdeskContactClient(FreshdeskClient freshdeskClient) { _freshdeskClient = freshdeskClient; }
public ConversationsClient(FreshdeskClient client) { _client = client; }
public FreshdeskSolutionClient(FreshdeskClient freshdeskClient) { _freshdeskClient = freshdeskClient; }
public FreshdeskTicketClient(FreshdeskClient freshdeskClient) { _freshdeskClient = freshdeskClient; }
public TicketFieldsClient(FreshdeskClient freshdeskClient) { _freshdeskClient = freshdeskClient; }
public FreshdeskCompaniesClient(FreshdeskClient freshdeskClient) { _freshdeskClient = freshdeskClient; }
public FreshdeskAgentClient(FreshdeskClient freshdeskClient) { _freshdeskClient = freshdeskClient; }
public FreshdeskGroupClient(FreshdeskClient freshdeskClient) { _freshdeskClient = freshdeskClient; }
static void Main(string[] args) { var client = new FreshdeskClient("https://b360.freshdesk.com", "VFYQim5tHEcVGLpP6hqN"); var res = client.Ticket.GetAllTickets(); var tick = client.Ticket.GetTicketById(64834); }