Exemple #1
0
        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&lt;T&gt;"/> 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)));
        }
Exemple #10
0
        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 { }
                        }
                    }
                }
            }
        }
Exemple #12
0
        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);
            }
        }
Exemple #14
0
        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);
                });
            }));
        }
Exemple #16
0
        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();
        }
Exemple #17
0
        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&lt;T&gt;"/> 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&lt;T&gt;"/> 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&lt;T&gt;"/> 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));
 }
Exemple #25
0
 /// <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));
 }
Exemple #26
0
 public T Find(int id)
 {
     return(ItemsProvider.Find(id));
 }
Exemple #27
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AsyncVirtualizingCollection&lt;T&gt;"/> 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;
 }
Exemple #28
0
 /// <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));
 }
Exemple #29
0
 /// <summary>
 /// Fetches the count of itmes from the IItemsProvider.
 /// </summary>
 /// <returns></returns>
 protected int FetchCount()
 {
     return(ItemsProvider.FetchCount());
 }
Exemple #30
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AsyncVirtualizingCollection&lt;T&gt;"/> class.
 /// </summary>
 /// <param name="itemsProvider">The items provider.</param>
 public AsyncVirtualizingCollection(ItemsProvider <T> itemsProvider)
     : base(itemsProvider)
 {
     _synchronizationContext = SynchronizationContext.Current;
 }