public T Find(int id) { var cached = CachedItems.FirstOrDefault(_ => _.Id == id); if (cached == null) { var item = ItemsProvider.Find(id); if (item == null) { return(null); } var index = FetchIndexForItem(item); if (index == -1) { return(null); } int pageIndex = index / PageSize; int pageOffset = index % PageSize; RequestPage(pageIndex); return(pages[pageIndex][pageOffset]); } return(cached); }
//методы internal RenderItem MatchNavigationItem(CompositionContext context) { if (ItemsProvider == null) { return(null); } List <NavigationItem> items = ItemsProvider.Provide(Node, context.HttpContext); NavigationItem matchedItem = items.FirstOrDefault( item => Node.MatchItemUrl(item, context, MatchRouteValues, MatchQueryString)); if (matchedItem == null) { return(null); } RenderItem renderItem = FromNavigationItem(matchedItem, context); renderItem.Parent = Parent; renderItem.IsCurrentItem = IsCurrentItem; renderItem.IsChildCurrentItem = IsChildCurrentItem; return(renderItem); }
/// <summary> /// Initializes a new instance of the <see cref="VirtualizingCollection<T>"/> class. /// </summary> /// <param name="itemsProvider">The items provider.</param> /// <param name="pageSize">Size of the page.</param> /// <param name="pageTimeout">The page timeout.</param> public VirtualizingCollection(IItemsProvider <T> itemsProvider, int pageSize, int pageTimeout) { _itemsProvider = itemsProvider; _pageSize = pageSize; _pageTimeout = pageTimeout; ItemCount = ItemsProvider.FetchCount(); }
protected virtual void StorePage(int pageIndex) { if (m_pages.ContainsKey(pageIndex)) { ItemsProvider.StorePage(pageIndex * PageSize, m_pages[pageIndex]); } }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); Name = Intent.Extras.GetString("name"); Address = Intent.Extras.GetString("address"); string source = Intent.Extras.GetString("source"); Title = $"{Name} ({Address})"; SetContentView(Resource.Layout.ServerInfo); ServerInfoListView = FindViewById <ListView>(Resource.Id.ServerInfoListView); ServerInfoListView.Adapter = new TwoLineListAdapter(this); Api = new ApiClient(Address); try { UpdateTask = TaskUtils.RunForever(c => { GetAsync(ItemsProvider.Create(source, Address)).Wait(); }, Canceller.Token, REFRESH_PERIOD); } catch (Exception e) { Toast.MakeText(this, $"Failed to connect to {Title}", ToastLength.Short).Show(); Log.Error(TAG, $"Failed to start activity with error {e}."); Finish(); } }
protected virtual void LoadPage(int pageIndex) { if (m_pages.ContainsKey(pageIndex)) { m_pages[pageIndex] = ItemsProvider.LoadPage(pageIndex * PageSize, PageSize); } }
protected override string GetDisplayText(object editValue, bool applyFormatting) { if (!IsSettings) { return(base.GetDisplayText(editValue, applyFormatting)); } if (Settings == null) { return(base.GetDisplayText(editValue, applyFormatting)); } // if (settings.IsInLoading && ItemsSource == null) // return StringResources.Wait; // // if (!settings.AllowAddNewValue) // return base.GetDisplayText(editValue, applyFormatting); var editvalue = editValue ?? _editValue; if (ItemsSource != null && !string.IsNullOrEmpty(editvalue.To <string>())) { //_editValue = null; var displayvalue = ItemsProvider.GetDisplayValueByEditValue(editvalue, null); return(displayvalue.To(" ")); } return(base.GetDisplayText(editValue, applyFormatting)); }
/// <summary> /// Fetches the requested page from the IItemsProvider. /// </summary> /// <param name="pageIndex">Index of the page.</param> /// <returns></returns> protected IList <T> FetchPage(int pageIndex, int pageLength, out int count) { var result = ItemsProvider.FetchRange(pageIndex * PageSize, pageLength, out count); Debug.Assert(result.Count <= pageLength, string.Format("Requested {0} got {1}", pageLength, result.Count)); Debug.Assert(count >= result.Count, "Sanity check"); return(result); }
/// <summary> /// Fetches the requested page from the IItemsProvider. /// </summary> /// <param name="pageIndex">Index of the page.</param> /// <returns></returns> protected IList <T> FetchPage(int pageIndex) { if (pageIndex * PageSize + PageSize <= _count) { return(ItemsProvider.FetchRange(pageIndex * PageSize, PageSize)); } return(ItemsProvider.FetchRange(pageIndex * PageSize, (_count - pageIndex * PageSize))); }
private void CreateNewEmployee() { var empItemsProvider = new ItemsProvider <Employees>(_context); var empManager = new EmployeesManager(_context, empItemsProvider); var employee = empManager.GetNewEmployee(); var vm = new EmployeeViewModel(employee, empManager, ViewModelNames.EmployeeViewModel_DisplayName); Workspace.Add(vm); SetActiveWorkspace(vm); }
protected virtual void OnCustomEditValueChanged(object sender, EditValueChangedEventArgs e) { // если уже получаем данные или очищаем значение, то лезть за данными не нужно if (IsInWaiting || e.NewValue == null) { return; } if (ValueMemberType == null && LookupInfo != null) { var desc = TypeDescriptor.GetProperties(LookupInfo.ItemType); ValueMemberType = desc[LookupInfo.ValueMember].PropertyType; } // если виратуальное поле не привязано или мы только создаем объект - делаем запрос за этой строчкой if (IsSimpleMode && (IsNewMode() || !CanUseVirtualField())) { RefreshData(); } if (ItemsProvider != null && EditValue != null && !string.IsNullOrEmpty(VirtualFieldName)) { var be = BindingOperations.GetBindingExpression(this, EditValueProperty); if (be != null) { var obj = DataContext as WMSBusinessObject; if (obj != null && obj.GetPropertyIsDirty(be.ParentBinding.Path.Path)) { // INFO: выставляем виртуальное поле по параметру лукапа // TODO: необходимо обновлять все зависящие виртуальные поля var text = ItemsProvider.GetDisplayValueByEditValue(EditValue, null); try { if (!Equals(obj.GetProperty(VirtualFieldName), text)) { obj.SetProperty(VirtualFieldName, text); } } catch { // не удалось присвоить - очищаем try { obj.SetProperty(VirtualFieldName, null); } catch { } } } } } }
private void ShowAllEmployees() { var all = Workspace.FirstOrDefault(vm => vm is AllEmployeesViewModel) as AllEmployeesViewModel; if (all == null) { var empItemsProvider = new ItemsProvider <Employees>(_context); var empManager = new EmployeesManager(_context, empItemsProvider); all = new AllEmployeesViewModel(empManager, ViewModelNames.AllEmployeesViewModel_DisplayName); Workspace.Add(all); } SetActiveWorkspace(all); }
protected override void OnPopupOpened() { base.OnPopupOpened(); if (EditMode == EditMode.InplaceActive && ListBox != null) { //К сожалению необходимо создавать ip каждый раз, в противном случае имеют место проблемы с SelectedItems var ip = new ItemsProvider(Settings) { DisplayFilterCriteria = LookupFilterCriteria }; ListBox.ItemsSource = ip.VisibleListSource; //if ((SelectedItems == null || SelectedItems.Count == 0) && EditValue != null) // ListBox.SelectedItem = ip.GetItem(EditValue); } }
public void Execute(ContextT context) { var items = ItemsProvider != null?ItemsProvider.Provide(context) : (IEnumerable)context; var itemContext = new EachContext <ContextT>() { ParentContext = context }; int index = 0; foreach (var itemObj in items) { itemContext.Index = index++; itemContext.Item = itemObj; ItemOperation.Execute(itemContext); } }
Task GetAsync(ItemsProvider provider) { return(provider .GetItemsAsync(Canceller.Token) .ContinueWith(t => { RunOnUiThread(() => { if (t.IsFaulted) { Log.Error(TAG, $"Failed to fetch information with error {t.Exception.Flatten().InnerException}."); Toast.MakeText(this, $"Failed to fetch information.", ToastLength.Short).Show(); return; } Populate(t.Result); }); })); }
public void GetFilesFromItemProvider(object sender, NotificationEventArgs e) { new Thread(() => { IsIterating = true; ItemsProvider.GetItems(e.Message); NotifyPropertyChanged(x => x.ItemsProvider.Items); new Thread(() => { Thread.Sleep(500); IsIterating = false; }) { IsBackground = true }.Start(); SendMessage(Messages.WorkingChanged, new NotificationEventArgs("false")); }) { IsBackground = true }.Start(); }
public IList <ItemT> Provide(ContextT context) { var items = ItemsProvider != null?ItemsProvider.Provide(context) : (IEnumerable)context; var itemContext = new MapListContext <ContextT>() { ParentContext = context }; int index = 0; var resList = new List <ItemT>(); foreach (var itemObj in items) { itemContext.Index = index++; itemContext.Item = itemObj; var mappedValue = MapProvider.Provide(itemContext); if (IgnoreNullResult && mappedValue == null) { continue; } resList.Add(mappedValue); } return(resList); }
public object GetDisplayValueByEditValue(object editValue) { return(ItemsProvider.GetDisplayValueByEditValue(editValue, null)); }
/// <summary> /// Fetches the count of itmes from the IItemsProvider. /// </summary> /// <returns></returns> protected async Task <long> FetchCount() { return(await ItemsProvider.FetchCount()); }
/// <summary> /// Fetches the requested page from the IItemsProvider. /// </summary> /// <param name="pageIndex">Index of the page.</param> /// <returns></returns> protected async Task <IList <T> > FetchPage(int pageIndex) { return(await ItemsProvider.FetchRange(pageIndex *PageSize, PageSize)); }
/// <summary> /// Initializes a new instance of the <see cref="VirtualizingCollection<T>"/> class. /// </summary> /// <param name="itemsProvider">The items provider.</param> public VirtualizingCollection(ItemsProvider <T> itemsProvider) { _itemsProvider = itemsProvider; }
/// <summary> /// Initializes a new instance of the <see cref="VirtualizingCollection<T>"/> class. /// </summary> /// <param name="itemsProvider">The items provider.</param> /// <param name="pageSize">Size of the page.</param> public VirtualizingCollection(ItemsProvider <T> itemsProvider, int pageSize) { _itemsProvider = itemsProvider; _pageSize = pageSize; }
/// <summary> /// Initializes a new instance of the <see cref="VirtualizingCollection<T>"/> class. /// </summary> /// <param name="itemsProvider">The items provider.</param> /// <param name="pageSize">Size of the page.</param> /// <param name="pageTimeout">The page timeout.</param> public VirtualizingCollection(ItemsProvider <T> itemsProvider, int pageSize, int pageTimeout) { _itemsProvider = itemsProvider; _pageSize = pageSize; _pageTimeout = pageTimeout; }
protected IList <T> FetchRange(int startIndex, int count) { return(ItemsProvider.FetchRange(startIndex, count)); }
/// <summary> /// Fetches the requested page from the IItemsProvider. /// </summary> /// <param name="pageIndex">Index of the page.</param> /// <returns></returns> protected IList <T> FetchPage(int pageIndex) { //Trace.WriteLine("ВОЗВРАТ СТРАНИЦЫ: pageIndex=" + pageIndex); return(ItemsProvider.FetchRange(pageIndex * PageSize, PageSize)); }
public T Find(int id) { return(ItemsProvider.Find(id)); }
/// <summary> /// Initializes a new instance of the <see cref="AsyncVirtualizingCollection<T>"/> class. /// </summary> /// <param name="itemsProvider">The items provider.</param> /// <param name="pageSize">Size of the page.</param> /// <param name="pageTimeout">The page timeout.</param> public AsyncVirtualizingCollection(ItemsProvider <T> itemsProvider, int pageSize, int pageTimeout) : base(itemsProvider, pageSize, pageTimeout) { _synchronizationContext = SynchronizationContext.Current; }
/// <summary> /// Fetches the requested page from the IItemsProvider. /// </summary> /// <param name="pageIndex">Index of the page.</param> /// <returns></returns> protected IList <T> FetchPage(int pageIndex) { return(ItemsProvider.FetchRange(pageIndex * PageSize, PageSize)); }
/// <summary> /// Fetches the count of itmes from the IItemsProvider. /// </summary> /// <returns></returns> protected int FetchCount() { return(ItemsProvider.FetchCount()); }
/// <summary> /// Initializes a new instance of the <see cref="AsyncVirtualizingCollection<T>"/> class. /// </summary> /// <param name="itemsProvider">The items provider.</param> public AsyncVirtualizingCollection(ItemsProvider <T> itemsProvider) : base(itemsProvider) { _synchronizationContext = SynchronizationContext.Current; }