using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading.Tasks; namespace STAFF_API.Services { public interface IWebAPIClient { #region Properties /// /// Specify base address to use on http client /// string BaseAddress { get; set; } /// /// Access token to call web api /// string AccessToken { get; set; } Dictionary Headers { get; set; } #endregion #region Methods /// /// Call web api with HTTP GET method /// /// /// The part of the web api serevice. /// For example: BookingPromotion/GetPromotion?promotionId=49 /// /// Return as generic class Task GetAsync(string actionPart); /// /// Call web api with HTTP POST method /// /// /// The part of the web api serevice. /// For example: BookingPromotion/AddNewGeneralPromotion /// /// Input to call web api /// Return as generic class Task PostAsync(string actionPart, object inputModel); /// /// Call web api with HTTP POST method with file uploading /// /// /// The part of the web api serevice. /// For example: BookingPromotion/AddNewGeneralPromotion /// /// Multipart Form Data Content /// Return as generic class Task PostFileAsync(string actionPart, MultipartFormDataContent formData); /// /// Call web api with HTTP POST method with file uploading /// /// The part of the web api serevice. /// For example: BookingPromotion/AddNewGeneralPromotion /// /// Input to call web api /// Expected file downloaded path /// Return file download path Task PostDownloadAsync(string actionPart, object inputModel, string returnPhysicalFilePath); /// /// Call web api with HTTP Put method /// /// /// The part of the web api serevice. /// For example: BookingPromotion/UpdateGeneralPromotion?promotionId=49 /// /// Input to call web api /// Return as generic class Task PutAsync(string actionPart, object inputModel); /// /// Call web api with HTTP Delete method /// /// /// The part of the web api serevice. /// For example: BookingPromotion/DeleteGeneralPromotion?promotionId=49 /// /// Task DeleteAsync(string actionPart); #endregion } }