using Azure.Core; using CloudBuilder.Core.DependencyInjection.Request; using CloudBuilder.Core.Policy; using CloudBuilder.Core.Service; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; namespace CloudBuilder.Core.Request { public interface IServiceRequest : IRequest { void SetToken(string token); void SetCulture(string culture); void SetToken(); Task GetAsync(string api); Task GetWithQueryAsync(string api, Dictionary queryParams); Task GetWithHeadersAsync(string api, Dictionary headers); Task GetWithHeadersAndQueryAsync(string api, Dictionary headers, Dictionary queryParams); Task PostAsJsonAsync(string api, T data); Task PostAsJsonAsync(string api, Dictionary headers, T data); Task PostAsJsonAsync(string api, Dictionary headers); Task PostAsJsonAsync(string api); Task PostAsync(string api); void DownloadFile(string api, string filePath, Action progressCallback, Action completedCallback); Task PostAsync(string api, MultipartFormDataContent data); Task PostStreamAsync(string api, Dictionary headers, T data); void AddHeaders(string name, string? value); void SetContext(IContext loginContext); HttpClient GetHttpClient(); } }