예제 #1
0
 private void rptListeArticle_Load(object sender, EventArgs e)
 {
     try
     {
         ListeArticle   rpt = new ListeArticle();
         SqlCommand     cmd = new SqlCommand(@"SELECT  Article.designation AS Article, Article.pu, categorie_Article.designation FROM Article INNER JOIN
         categorie_Article ON Article.id_categorie = categorie_Article.id", Factory.Instance.connectDB());
         SqlDataAdapter sa  = new SqlDataAdapter(cmd);
         DataSet        ds  = new DataSet();
         sa.Fill(ds, "doc");
         rpt.SetDataSource(ds.Tables["doc"]);
         rptListeArt.ReportSource = rpt;
         rptListeArt.Refresh();
         sa.Dispose();
         ds.Dispose();
         cmd.Dispose();
     }
     catch (Exception exc)
     {
         MessageBox.Show(exc.Message, "Erreur de l'afichage du rapport", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
 }
예제 #2
0
        public async Task<ActionResult<IEnumerable<Article>>> GetArticletesting(int nbPage, string chainetest, int idTag) //="" have by default
        {

            string sortorder = chainetest.Substring(0, 4); //ordre de sorting
            string searchString = chainetest.Substring(4); //recherche
            int nbPerPage = NB_PER_PAGE;

            List<Article> ListeArticle;
            List<Article> rowArticles;


            if (searchString.Length > 0)
            {
                //*************ARTICLES+RECHERCHE
                //check si un tag est setté
                if (idTag != 0)
                {
                    ListeArticle = await _context.Article
                        .Where(d => d.IsactiveArticle == true)
                        .Where(s => s.TitreArticle.Contains(searchString))
                        .Include(p => p.IdNavigation)
                        .Include(p => p.Referencer)
                        .Where(p => p.Referencer.Any(x => x.IdTag == idTag))
                        .ToListAsync();
                }
                else
                {
                    ListeArticle = await _context.Article.Where(d => d.IsactiveArticle == true).Where(s => s.TitreArticle.Contains(searchString)).Include(p => p.IdNavigation).ToListAsync();
                }
                //*************ARTICLES+RECHERCHE
            }
            else
            {
                //*************ARTICLES
                if (idTag != 0)
                {
                    ListeArticle = await _context.Article
                        .Where(d => d.IsactiveArticle == true)
                        .Include(p => p.IdNavigation)
                        .Include(p => p.Referencer)
                        .Where(p => p.Referencer.Any(x => x.IdTag == idTag))
                        .ToListAsync();
                }
                else
                {
                    ListeArticle = await _context.Article.Where(d => d.IsactiveArticle == true).Include(p => p.IdNavigation).ToListAsync();
                }
                //*************ARTICLES
            }

            //*************SORTAGE
            IEnumerable<Article> intermediateListeArticle = ListeArticle;

            switch (sortorder)
            {
                case "ztoa":
                    intermediateListeArticle = intermediateListeArticle.OrderByDescending(s => s.TitreArticle);
                    break;
                case "atoz":
                    intermediateListeArticle = intermediateListeArticle.OrderBy(s => s.TitreArticle);
                    break;
                case "desc":
                    intermediateListeArticle = intermediateListeArticle.OrderByDescending(s => s.DatepublicationArticle);
                    break;
                case "dasc":
                    intermediateListeArticle = intermediateListeArticle.OrderBy(s => s.DatepublicationArticle);
                    break;
                default:
                    intermediateListeArticle = intermediateListeArticle.OrderBy(s => s.TitreArticle);
                    break;
            }

            ListeArticle = intermediateListeArticle.ToList();
            //*************SORTAGE

            //*************PAGINATION
            if (nbPage > GetPageNbTotalBySearch(ListeArticle))
            {
                nbPage = GetPageNbTotalBySearch(ListeArticle);
            }
            if (nbPage < 1)
            {
                nbPage = 1;
            }

            if (nbPage * nbPerPage > GetArticleNbTotalBySearch(ListeArticle))
            {
                nbPerPage -= nbPage * nbPerPage - GetArticleNbTotalBySearch(ListeArticle);
            }

            rowArticles = ListeArticle.GetRange((nbPage - 1) * nbPerPage, nbPerPage);
            //*************PAGINATION

            return rowArticles;
        }