public virtual async Task <OrderInfoResponse> GetOrderAsync(string incrementId) { try { //var frameworkSearchFilterGroups = new List< FrameworkSearchFilterGroup > //{ // new FrameworkSearchFilterGroup() { filters = new[] { new FrameworkFilter() { field = "increment_id", conditionType = "eq", value = incrementId } } }, //}; //if( string.IsNullOrWhiteSpace( this.Store ) ) // frameworkSearchFilterGroups.Add( new FrameworkSearchFilterGroup() { filters = new[] { new FrameworkFilter() { field = "store_Id", conditionType = "eq", value = this.Store } } } ); var filters = new SalesOrderRepositoryV1GetRequest { id = int.Parse(incrementId) }; const int maxCheckCount = 2; const int delayBeforeCheck = 1800000; var res = new salesOrderRepositoryV1GetResponse1(); var privateClient = this._clientFactory.CreateMagentoSalesOrderRepositoryServiceClient(); await ActionPolicies.GetAsync.Do(async() => { var statusChecker = new StatusChecker(maxCheckCount); TimerCallback tcb = statusChecker.CheckStatus; privateClient = this._clientFactory.RefreshMagentoSalesOrderRepositoryServiceClient(privateClient); using (var stateTimer = new Timer(tcb, privateClient, 1000, delayBeforeCheck)) try { res = await privateClient.salesOrderRepositoryV1GetAsync(filters).ConfigureAwait(false); } catch (Exception ex) { if (ex.Message.ToLower() == "requested entity doesn't exist") { res = null; return; } throw; } }).ConfigureAwait(false); return(res == null ? null : new OrderInfoResponse(res)); } catch (Exception exc) { throw new MagentoSoapException($"An error occured during GetOrderAsync(incrementId:{incrementId})", exc); } }
public virtual async Task <OrderInfoResponse> GetOrderAsync(string incrementId) { try { //var frameworkSearchFilterGroups = new List< FrameworkSearchFilterGroup > //{ // new FrameworkSearchFilterGroup() { filters = new[] { new FrameworkFilter() { field = "increment_id", conditionType = "eq", value = incrementId } } }, //}; //if( string.IsNullOrWhiteSpace( this.Store ) ) // frameworkSearchFilterGroups.Add( new FrameworkSearchFilterGroup() { filters = new[] { new FrameworkFilter() { field = "store_Id", conditionType = "eq", value = this.Store } } } ); var filters = new SalesOrderRepositoryV1GetRequest { id = int.Parse(incrementId) }; const int maxCheckCount = 2; const int delayBeforeCheck = 1800000; var res = new salesOrderRepositoryV1GetResponse1(); var privateClient = this.CreateMagentoSalesOrderRepositoryServiceClient(this.BaseMagentoUrl); await ActionPolicies.GetAsync.Do(async() => { var statusChecker = new StatusChecker(maxCheckCount); TimerCallback tcb = statusChecker.CheckStatus; if (privateClient.State != CommunicationState.Opened && privateClient.State != CommunicationState.Created && privateClient.State != CommunicationState.Opening) { privateClient = this.CreateMagentoSalesOrderRepositoryServiceClient(this.BaseMagentoUrl); } using (var stateTimer = new Timer(tcb, privateClient, 1000, delayBeforeCheck)) res = await privateClient.salesOrderRepositoryV1GetAsync(filters).ConfigureAwait(false); }).ConfigureAwait(false); return(new OrderInfoResponse(res)); } catch (Exception exc) { throw new MagentoSoapException(string.Format("An error occured during GetOrderAsync(incrementId:{0})", incrementId), exc); } }
public virtual async Task <OrderInfoResponse> GetOrderAsync(string incrementId, Mark mark = null) { try { var filters = new SalesOrderRepositoryV1GetRequest { id = int.Parse(incrementId) }; const int maxCheckCount = 2; const int delayBeforeCheck = 1800000; var res = new salesOrderRepositoryV1GetResponse1(); var privateClient = this._clientFactory.CreateMagentoSalesOrderRepositoryServiceClient(); await ActionPolicies.GetWithMarkAsync(mark).Do(async() => { var statusChecker = new StatusChecker(maxCheckCount); TimerCallback tcb = statusChecker.CheckStatus; privateClient = this._clientFactory.RefreshMagentoSalesOrderRepositoryServiceClient(privateClient); using (var stateTimer = new Timer(tcb, privateClient, 1000, delayBeforeCheck)) try { res = await privateClient.salesOrderRepositoryV1GetAsync(filters).ConfigureAwait(false); } catch (Exception ex) { if (ex.Message.ToLower() == "requested entity doesn't exist") { res = null; return; } throw; } }).ConfigureAwait(false); return(res == null ? null : new OrderInfoResponse(res)); } catch (Exception exc) { throw new MagentoSoapException($"An error occured during GetOrderAsync(incrementId:{incrementId}) ", exc, mark); } }