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 })); }
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 })); }
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 })); }