public virtual ConcurrentDictionary <string, StampResponseV2> TimbrarV2Async(string[] xmls, bool isb64 = false) { StampResponseHandlerV2 handler = new StampResponseHandlerV2(); ConcurrentBag <string> request = new ConcurrentBag <string>(xmls); ConcurrentDictionary <string, StampResponseV2> response = new ConcurrentDictionary <string, StampResponseV2>(); string format = isb64 ? "b64" : ""; Parallel.ForEach(request, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, async i => { try { var xmlBytes = Encoding.UTF8.GetBytes(i); var headers = await GetHeadersAsync(); var content = GetMultipartContent(xmlBytes); var proxy = Helpers.RequestHelper.ProxySettings(this.Proxy, this.ProxyPort); response.TryAdd(i, await handler.GetPostResponseAsync(this.Url, string.Format("cfdi33/{0}/{1}/{2}", _operation, StampTypes.v2.ToString(), format), headers, content, proxy)); } catch (Exception ex) { response.TryAdd(i, handler.HandleException(ex)); } }); return(response); }
public virtual async Task <StampResponseV2> TimbrarV2Async(string xml, bool isb64 = false) { StampResponseHandlerV2 handler = new StampResponseHandlerV2(xml); try { string format = isb64 ? "b64" : ""; var xmlBytes = Encoding.UTF8.GetBytes(xml); var headers = await GetHeadersAsync(); var content = GetMultipartContent(xmlBytes); var proxy = Helpers.RequestHelper.ProxySettings(this.Proxy, this.ProxyPort); return(await handler.GetPostResponseAsync(this.Url, string.Format("cfdi33/v2/{0}/{1}/{2}", _operation, StampTypes.v2.ToString(), format), headers, content, proxy)); } catch (Exception ex) { return(handler.HandleException(ex)); } }