private void LoadOrganizationsByFilter(IOrganizationFilter filter)
        {
            System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
            var watch = System.Diagnostics.Stopwatch.StartNew();

            lastFilter = filter;
            pageSize   = int.Parse(txtbxPageSIze.Text);

            int amount = db.GetOrganizationsCount(filter);

            lblOrgCount.Text = String.Format("По вашему запросу найдено {0} организаций", amount);
            lblCurPage.Text  = String.Format("Страница {0} из {1}", curPage, (amount + pageSize - 1) / pageSize);
            if (curPage == 1)
            {
                btnPrevPage.Enabled = false;
            }
            else
            {
                btnPrevPage.Enabled = true;
            }

            if (curPage * pageSize >= amount)
            {
                btnNextPage.Enabled = false;
            }
            else
            {
                btnNextPage.Enabled = true;
            }


            lbOrganizations.Items.Clear();
            lbOrganizations.Items.AddRange(db.GetOrganizations(filter, (curPage - 1) * pageSize, pageSize).ToArray());


            System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Arrow;
            watch.Stop();
            var elapsedMs = watch.ElapsedMilliseconds;

            lblExecutionTime.Text = "Выполнение запроса заняло " + elapsedMs / 1000.0 + " секунд";
        }
Beispiel #2
0
        public int GetOrganizationsCount(IOrganizationFilter filter)
        {
            SqlCommand cmd = new SqlCommand(filter.GetCountQuery(), _conn);

            return((int)cmd.ExecuteScalar());
        }
Beispiel #3
0
        public List <Organization> GetOrganizations(IOrganizationFilter filter, int offset = 0, int limit = 100)
        {
            List <Organization> orgs = OrganizationRepository.GetOrganizations(filter.GetSelectQuery() + " ORDER BY Id  OFFSET " + offset + " ROWS FETCH NEXT " + limit + " ROWS ONLY;");

            return(orgs);
        }