示例#1
0
        public async Task <IActionResult> SearchAndGet(Model model)
        {
            // int idUser = HttpContext.GetIdUser();
            // int role = HttpContext.GetRoleUser();
            // bool hasAcess = (role == 1 || role == 4) ? true : false;

            var query = _context.Mesures
                        // .Where(e => hasAcess ? true : (e.User.IdOrganisme == idOrganisme))
                        // this filter = , المخطط التنفيدي   المخطط التنفيدي الترابي    برامج العمل
                        .Where(e => e.Responsable.Organisme.Type == model.TypeOrganisme)

                        .Where(e => model.IdCycle == 0 ? true : e.IdCycle == model.IdCycle)
                        .Where(e => model.IdMesure == 0 ? true : e.Id == model.IdMesure)
                        .Where(e => model.IdResponsable == 0 ? true : e.IdResponsable == model.IdResponsable)
                        .Where(e => model.IdAxe == 0 ? true : e.IdAxe == model.IdAxe)
                        .Where(e => model.IdSousAxe == 0 ? true : e.IdSousAxe == model.IdSousAxe)
                        .Where(e => model.IdOrganisme == 0 ? true : e.Responsable.IdOrganisme == model.IdOrganisme)
                        // .Where(e => model.IdOrganisme == 0 ? true : e.Partenariats.Any(p => p.IdOrganisme == model.IdOrganisme))
            ;

            int count = model.IsAllEmpty() ? await _context.Mesures.CountAsync() : await query.CountAsync();

            var list = await query.OrderByName <Mesure>(model.SortBy, model.SortDir == "desc")
                       .Skip(model.StartIndex)
                       .Take(model.PageSize)
                       // .Include(e => e.Responsable)
                       // .ThenInclude(e => e.Organisme)
                       .Include(e => e.Cycle)
                       .Select(e => new
            {
                id               = e.Id,
                cycle            = e.Cycle,
                organisme        = e.Responsable.Organisme,
                nom              = e.Nom,
                responsable      = e.Responsable,
                resultatsAttendu = e.ResultatsAttendu,
                type             = e.Responsable.Organisme.Type
            })
                       .ToListAsync();

            ;

            return(Ok(new { list = list, count = count }));
        }
示例#2
0
        public async Task <IActionResult> SearchAndGet(Model model)
        {
            int  idUser   = HttpContext.GetIdUser();
            int  role     = HttpContext.GetRoleUser();
            bool hasAcess = (role == 1 || role == 2) ? true : false;

            var query = _context.Realisations
                        .Where(e => hasAcess ? true : (e.Activite.Mesure.IdResponsable == idUser))
                        // .Where(e => e.Responsable.Organisme.Type == model.TypeOrganisme)
                        .Where(e => model.IdCycle == 0 ? true : e.Activite.Mesure.IdCycle == model.IdCycle)
                        .Where(e => model.IdMesure == 0 ? true : e.Activite.IdMesure == model.IdMesure)
                        .Where(e => model.IdResponsable == 0 ? true : e.Activite.Mesure.IdResponsable == model.IdResponsable)
                        .Where(e => model.IdAxe == 0 ? true : e.Activite.Mesure.IdAxe == model.IdAxe)
                        .Where(e => model.IdSousAxe == 0 ? true : e.Activite.Mesure.IdSousAxe == model.IdSousAxe)
                        // .Where(e => model.IdOrganisme == 0 ? true : e.Activite.Mesure.IdOrganisme == model.IdOrganisme)
                        // .Where(e => model.IdOrganisme == 0 ? true : e.Partenariats.Any(p => p.IdOrganisme == model.IdOrganisme))
            ;

            int count = model.IsAllEmpty() ? await _context.Realisations.CountAsync() : await query.CountAsync();

            var list = await query.OrderByName <Realisation>(model.SortBy, model.SortDir == "desc")
                       .Skip(model.StartIndex)
                       .Take(model.PageSize)
                       // .Include(e => e.Responsable)
                       // .ThenInclude(e => e.Organisme)
                       .Include(e => e.Activite)
                       .Select(e => new
            {
                id        = e.Id,
                mesure    = e.Activite.Mesure.Nom,
                activite  = e.Activite.Nom,
                annee     = e.Annee,
                nom       = e.Nom,
                situation = e.Situation,
                taux      = e.Taux,
            })
                       .ToListAsync();

            ;

            return(Ok(new { list = list, count = count }));
        }
示例#3
0
        public async Task <IActionResult> GetRapportQualitative(Model model)
        {
            int  idUser   = HttpContext.GetIdUser();
            int  role     = HttpContext.GetRoleUser();
            bool hasAcess = (role == 1 || role == 2) ? true : false;

            var query = _context.Mesures
                        .Where(e => hasAcess ? true : (e.IdResponsable == idUser))
                        // .Where(e => e.Responsable.Organisme.Type == model.TypeOrganisme)
                        .Where(e => model.IdCycle == 0 ? true : e.IdCycle == model.IdCycle)
                        .Where(e => model.IdMesure == 0 ? true : e.Id == model.IdMesure)
                        .Where(e => model.IdResponsable == 0 ? true : e.IdResponsable == model.IdResponsable)
                        .Where(e => model.IdAxe == 0 ? true : e.IdAxe == model.IdAxe)
                        .Where(e => model.IdSousAxe == 0 ? true : e.IdSousAxe == model.IdSousAxe)
                        // .Where(e => model.IdOrganisme == 0 ? true : e.Activite.Mesure.IdOrganisme == model.IdOrganisme)
                        // .Where(e => model.IdOrganisme == 0 ? true : e.Partenariats.Any(p => p.IdOrganisme == model.IdOrganisme))
            ;

            int count = model.IsAllEmpty() ? await _context.Realisations.CountAsync() : await query.CountAsync();

            var list = await query.OrderByName <Mesure>(model.SortBy, model.SortDir == "desc")
                       .Skip(model.StartIndex)
                       .Take(model.PageSize)
                       // .Include(e => e.Responsable)
                       // .ThenInclude(e => e.Organisme)
                       // .Include(e => e.Activite)
                       .Select(e => new
            {
                id           = e.Id,
                organisme    = e.Responsable.Organisme.Label,
                mesure       = e.Nom,
                realisations = e.Activites.SelectMany(a => a.Realisations.Select(r => r.Nom)),
                taux         = e.Activites.SelectMany(a => a.Realisations.Select(r => r.Taux)),
                // taux = e.ac,
                indicateurs = e.IndicateurMesures.Select(i => i.Indicateur.Nom),
            })
                       .ToListAsync();

            ;

            return(Ok(new { list = list, count = count }));
        }
        public async Task <IActionResult> SearchAndGet(Model model)
        {
            int  idUser   = HttpContext.GetIdUser();
            int  role     = HttpContext.GetRoleUser();
            bool hasAcess = (role == 1 || role == 2) ? true : false;

            var query = _context.Mesures
                        .Where(e => e.ActiviteMesures != null)
                        .Where(e => e.ActiviteMesures.Any(f => f.Activite != null))
                        .Where(e => hasAcess ? true : e.Responsables.Any(r => r.IdUser == idUser))
                        .Where(e => model.IdCycle == 0 ? true : e.IdCycle == model.IdCycle)
                        .Where(e => model.IdMesure == 0 ? true : e.Id == model.IdMesure)
                        .Where(e => model.IdResponsable == 0 ? true : e.Responsables.Any(o => o.IdUser == model.IdResponsable))
                        .Where(e => model.IdAxe == 0 ? true : e.IdAxe == model.IdAxe)
                        .Where(e => model.IdSousAxe == 0 ? true : e.IdSousAxe == model.IdSousAxe)
                        .Where(e => model.IdOrganisme == 0 ? true : e.Partenariats.Any(p => p.IdOrganisme == model.IdOrganisme))

                        .Where(e => model.CodeMesure == "" ? true : e.Code == model.CodeMesure)
                        .Where(e => model.NomMesure == "" ? true : e.Nom.Contains(model.NomMesure))
                        .Where(e => model.Situation == "" ? true : e.Realisations.Any(f => f.Situation == model.Situation))
                        .Where(e => model.SituationMesure == "" ? true : model.SituationMesure == "غير منجز" ? e.Realisations.All(f => f.TauxRealisation == 0) : model.SituationMesure == "منجز" ? e.Realisations.All(f => f.TauxRealisation == 100): e.Realisations.All(f => f.TauxRealisation > 0 && f.TauxRealisation < 100))


                        .Include(e => e.Realisations).ThenInclude(e => e.Activite)

            ;

            int count = model.IsAllEmpty() ? await _context.Mesures.CountAsync() : await query.CountAsync();


            var countActivite = _context.Realisations
                                .Where(e => e.Activite.ActiviteMesures != null)
                                .Where(e => e.Activite.ActiviteMesures.Any(f => f.Activite != null))
                                .Where(e => model.IdCycle == 0 ? true : e.Activite.ActiviteMesures.Any(f => f.Mesure.IdCycle == model.IdCycle))
                                .Where(e => model.IdAxe == 0 ? true : e.Activite.ActiviteMesures.Any(f => f.Mesure.IdAxe == model.IdAxe))
                                .Where(e => model.IdSousAxe == 0 ? true : e.Activite.ActiviteMesures.Any(f => f.Mesure.IdSousAxe == model.IdSousAxe))
                                .Where(e => model.IdOrganisme == 0 ? true : e.Mesure.Partenariats.Any(p => p.IdOrganisme == model.IdOrganisme))


                                .Where(e => model.CodeMesure == "" ? true : e.Activite.ActiviteMesures.Any(f => f.Mesure.Code == model.CodeMesure))
                                .Where(e => model.NomMesure == "" ? true : e.Activite.ActiviteMesures.Any(f => f.Mesure.Nom.Contains(model.NomMesure)))
                                .Where(e => model.Situation == "" ? true : e.Situation == model.Situation)
                                .Where(e => model.SituationMesure == "" ? true : model.SituationMesure == "غير منجز" ? e.TauxRealisation == 0 : model.SituationMesure == "منجز" ? e.TauxRealisation == 100: e.TauxRealisation > 0 && e.TauxRealisation < 100)
                                .Count();



            var list = await query.OrderByName <Mesure>(model.SortBy, model.SortDir == "desc")
                       .Skip(model.StartIndex)
                       .Take(model.PageSize)
                       .Select(e => new
            {
                id           = e.Id,
                mesure       = e.Nom,
                realisations = e.Realisations,
                tauxTotal    = e.Realisations.Average(f => f.TauxRealisation),
            })
                       .ToListAsync();

            ;

            return(Ok(new { list = list, count = count, countActivite = countActivite }));
        }