private void Bind(int page)
        {
            List <Plugin> plugins = GetFilteredList();
            // Get the asset count
            int total = plugins.Count;

            // Setup the pager
            BottomPager.CurrentPage = page;
            BottomPager.PageSize    = PageSize;
            BottomPager.ItemCount   = total;
            BottomPager.CalculatePageCount();

            // Setup page variables
            CurrentPage = page;
            RecordCount = total;
            TotalPages  = BottomPager.PageCount;

            //sort the plugins
            Sort(plugins);

            // Bind the asset list to relevant page
            PluginsRepeater.DataSource = plugins.Skip((CurrentPage - 1) * PageSize).Take(PageSize);
            PluginsRepeater.DataBind();


            // Toggle no results panel
            PluginsRepeater.Visible = (plugins.Count > 0);
            NoResultsPanel.Visible  = (plugins.Count == 0);
        }
Beispiel #2
0
        private void RefreshPlugins()
        {
            using (DataTable dataSource = new DataTable())
            {
                dataSource.Locale = CultureInfo.InvariantCulture;
                dataSource.Columns.Add("Name");
                dataSource.Columns.Add("FullName");

                foreach (string layerName in GetLayerNames())
                {
                    DataRow row = dataSource.NewRow();
                    row["Name"]     = layerName;
                    row["FullName"] = layerName;
                    dataSource.Rows.Add(row);
                }

                PluginsRepeater.DataSource = dataSource;
                PluginsRepeater.DataBind();
            }
        }
        private void Sort(List <Plugin> plugins)
        {
            switch (PluginsRepeater.GetSortExpressions()[0].FieldName.ToLower())
            {
            case "name":
                if (PluginsRepeater.GetSortExpressions()[0].IsAscending)
                {
                    plugins.Sort((x, y) => string.Compare(x.Name, y.Name));
                }
                else
                {
                    plugins.Sort((x, y) => string.Compare(y.Name, x.Name));
                }
                break;

            case "guid":
                if (PluginsRepeater.GetSortExpressions()[0].IsAscending)
                {
                    plugins.Sort((x, y) => string.Compare((x.RegistrationKey == Guid.Empty ? "N/A" : x.RegistrationKey.ToString()), (y.RegistrationKey == Guid.Empty ? "N/A" : y.RegistrationKey.ToString())));
                }
                else
                {
                    plugins.Sort((x, y) => string.Compare((y.RegistrationKey == Guid.Empty ? "N/A" : y.RegistrationKey.ToString()), (x.RegistrationKey == Guid.Empty ? "N/A" : x.RegistrationKey.ToString())));
                }
                break;

            case "version":
                if (PluginsRepeater.GetSortExpressions()[0].IsAscending)
                {
                    plugins.Sort((x, y) => decimal.Compare(x.PluginFile.PluginVersion, y.PluginFile.PluginVersion));
                }
                else
                {
                    plugins.Sort((x, y) => decimal.Compare(y.PluginFile.PluginVersion, x.PluginFile.PluginVersion));
                }
                break;

            case "status":
                if (PluginsRepeater.GetSortExpressions()[0].IsAscending)
                {
                    plugins.Sort((x, y) => string.Compare(GetStatusText(x), GetStatusText(y)));
                }
                else
                {
                    plugins.Sort((x, y) => string.Compare(GetStatusText(y), GetStatusText(x)));
                }
                break;

            case "folder":
                if (PluginsRepeater.GetSortExpressions()[0].IsAscending)
                {
                    plugins.Sort((x, y) => string.Compare(x.RelativePath, y.RelativePath));
                }
                else
                {
                    plugins.Sort((x, y) => string.Compare(y.RelativePath, x.RelativePath));
                }
                break;

            case "contexts":
                if (PluginsRepeater.GetSortExpressions()[0].IsAscending)
                {
                    plugins.Sort((x, y) => string.Compare(PluginManager.NumberOfContexts(x).ToString(), PluginManager.NumberOfContexts(y).ToString()));
                }
                else
                {
                    plugins.Sort((x, y) => string.Compare(PluginManager.NumberOfContexts(y).ToString(), PluginManager.NumberOfContexts(x).ToString()));
                }
                break;

            case "active":
                if (PluginsRepeater.GetSortExpressions()[0].IsAscending)
                {
                    plugins.Sort((x, y) => string.Compare((x.IsDisabled ? "No" : "Yes"), (y.IsDisabled ? "No" : "Yes")));
                }
                else
                {
                    plugins.Sort((x, y) => string.Compare((y.IsDisabled ? "No" : "Yes"), (x.IsDisabled ? "No" : "Yes")));
                }
                break;

            case "registered":
                if (PluginsRepeater.GetSortExpressions()[0].IsAscending)
                {
                    plugins.Sort((x, y) => string.Compare((x.IsUnregistered ? "No" : "Yes"), (y.IsUnregistered ? "No" : "Yes")));
                }
                else
                {
                    plugins.Sort((x, y) => string.Compare((y.IsUnregistered ? "No" : "Yes"), (x.IsUnregistered ? "No" : "Yes")));
                }
                break;
            }
        }
 protected void SortListLinkButton_Command(object sender, CommandEventArgs e)
 {
     PluginsRepeater.UpdateSortExpression(e.CommandArgument.ToString());
     Bind(1);
 }