private async Task Refresh(SalesInquiryContext filter, SortColumnItem sortColumnItem = null) { try { IsBusy = true; if (sortColumnItem == null) { _sortColumn = new SortColumnItem(PipelineSortColumn.Plant, null) { Ascending = true }; } else { _sortColumn = sortColumnItem.CloneJson(); } IEnumerable <SalesQuotationInquiry> lines; if (_forceRefresh || IsFilterDifferentFromLast(filter)) { var result = await Api.GetSalesQuotationInquiry(filter); if (!result.Successful.GetValueOrDefault() && !string.IsNullOrEmpty(result.ExceptionMessage)) { await Alert.DisplayApiCallError(result.ExceptionMessage, result.ValidationErrors); NoResults = true; return; } lines = result.Data.ToList(); _previousFilter = filter; } else { lines = _pipelineList; } var sortedLines = SortList(_sortColumn, lines.ToList()) .ToList(); PipelineList = new ObservableCollection <SalesQuotationInquiry>(sortedLines); NoResults = !_pipelineList.Any(); ListHeight = _pipelineList.Count * 80; } catch (Exception ex) { await Alert.DisplayError(ex); } finally { IsBusy = false; } }
private bool IsFilterDifferentFromLast(SalesInquiryContext currentFilter) { if (_previousFilter == null) { return(true); } if (_previousFilter.AccountName != currentFilter.AccountName) { return(true); } if (_previousFilter.AccountNo != currentFilter.AccountNo) { return(true); } if (_previousFilter.SalesResponsible != currentFilter.SalesResponsible) { return(true); } if (_previousFilter.Filter != currentFilter.Filter) { return(true); } if (_previousFilter.FromAmount != currentFilter.FromAmount) { return(true); } if (_previousFilter.ToAmount != currentFilter.ToAmount) { return(true); } if (_previousFilter.FromExpiryDate != currentFilter.FromExpiryDate) { return(true); } if (_previousFilter.ToExpiryDate != currentFilter.ToExpiryDate) { return(true); } if (_previousFilter.InventSiteId != currentFilter.InventSiteId) { return(true); } if (_previousFilter.LeadTime != currentFilter.LeadTime) { return(true); } if (_previousFilter.Probability != currentFilter.Probability) { return(true); } return(false); }
public SalesInquiryContext ToFilter() { var filter = new SalesInquiryContext { SalesGroup = SettingsService.Instance.MyInfo.CurrentUser.SalesRepTag, AccountName = this.AccountName, AccountNo = this.AccountNumber, Filter = this.SelectedStatus.Key, FromAmount = this.FromAmount?.ToNullableDouble(), ToAmount = this.ToAmount?.ToNullableDouble(), FromExpiryDate = this.FromDate, ToExpiryDate = this.ToDate, InventSiteId = this.SelectedBranch?.Code, LeadTime = this.SelectedLeadTime.Key, SalesResponsible = string.IsNullOrWhiteSpace(_salesResponsible) ? null : $"{this.SalesResponsible.Trim()}*", Probability = this.Probability?.ToNullableDouble(), }; return(filter); }
private async Task OnSearch(SalesInquiryContext arg) { ShowFilter = false; await Refresh(arg); }
public async Task <ApiResponseOfListOfSalesQuotationInquiry> GetSalesQuotationInquiry(SalesInquiryContext context) { return(await AXClient.Instance.GetSalesQuotationInquiryAsync(context).ConfigureAwait(false)); }