public IList <IRmaViewModel> LoadRange(int startIndex, int count, SortDescriptionCollection sortDescriptions, out int overallCount) { var retVal = new List <IRmaViewModel>(); using (var repository = _orderRepositoryFactory.GetRepositoryInstance()) { var query = repository.RmaRequests.Expand("RmaReturnItems/RmaLineItems/LineItem,Order"); //.Where(rma => rma.RmaReturnItems.Any(item => item.ItemState == "AwaitingReturn"));// == Enum.GetName(typeof(RmaRequestStatus), RmaRequestStatus.AwaitingStockReturn)); if (!string.IsNullOrEmpty(SearchFilterAuthorizationCode)) { query = query.Where(x => x.AuthorizationCode.Contains(SearchFilterAuthorizationCode)); } if (!string.IsNullOrEmpty(SearchFilterItemName)) { query = query.Where( x => x.RmaReturnItems.Any( rItem => rItem.RmaLineItems.Any(lItem => lItem.LineItem.DisplayName.Contains(SearchFilterItemName)))); } if (SearchFilterStatus is RmaRequestStatus) { query = query.Where(x => x.Status == Enum.GetName(typeof(RmaRequestStatus), SearchFilterStatus)); } if (!string.IsNullOrEmpty(SearchFilterCustomerName)) { query = query.Where(x => x.Order.CustomerName.Contains(SearchFilterCustomerName)); } if (!string.IsNullOrEmpty(SearchFilterOrderTrackingNumber)) { query = query.Where(x => x.Order.TrackingNumber.Contains(SearchFilterOrderTrackingNumber)); } if (!string.IsNullOrEmpty(SearchFilterItemCode)) { query = query.Where( x => x.RmaReturnItems.Any( rItem => rItem.RmaLineItems.Any(lItem => lItem.LineItem.CatalogItemCode.Contains(SearchFilterItemCode)))); } if (!string.IsNullOrEmpty(SearchFilterReason) && AvailableReasons.Any(reason => string.Equals(SearchFilterReason, reason))) { query = query.Where(x => x.RmaReturnItems.Any(item => item.ReturnReason == SearchFilterReason)); } overallCount = query.Count(); var l = query.OrderByDescending(x => x.Created).Skip(startIndex).Take(count).ToList(); retVal.AddRange(l.Select(i => _rmaVmFactory.GetViewModelInstance(new KeyValuePair <string, object>("item", i)))); } return(retVal); }
private async void Initialize() { QuantityToMove = 1; AvailableReasons = await Task.Run(() => { string[] result = null; using (var repository = _repository.GetRepositoryInstance()) { var setting = repository.Settings.Where(x => x.Name == SettingName_ReturnReasons).ExpandAll().SingleOrDefault(); if (setting != null) { result = setting.SettingValues.Select(x => x.ShortTextValue).ToArray(); } } return(result); }); if (AvailableReasons != null) { OnPropertyChanged("AvailableReasons"); SelectedReason = AvailableReasons.FirstOrDefault(); OnPropertyChanged("SelectedReason"); } }