public async Task AddToErp(ProductE product, Action <SynchronizationModel> onProgress) { await ExecuteHttpRequest(async httpClient => { var model = GetModel(product); var json = JsonConvert.SerializeObject(model); var response = await httpClient.Retry(RepeatTimes, () => httpClient.PostAsync(_endpoint, new StringContent(json, Encoding.UTF8, "application/json"))); onProgress(GetResponse($"Successfully added product to erp {ErpType}")); }, onProgress); }
protected abstract TModel GetModel(ProductE product);
public virtual bool CanHandle(ErpType erpType, ProductE product = null) => erpType == ErpType;