public DataTableViewModel <FicheSecurite> GetFromParams2(FicheSecuriteParams actionParams) { try { IQueryable <FicheSecurite> queryFicheSecurite = from f in _db.FicheSecurites join c in _db.CauseQSEs on f.FicheSecuriteID equals c.FicheSecuriteId join a in _db.ActionQSEs on c.CauseQSEId equals a.CauseQSEId select f; List <Expression <Func <FicheSecurite, bool> > > actionsFilter = new List <Expression <Func <FicheSecurite, bool> > >(); List <bool> filters = actionParams.GetBoolFilters(); if (!filters.All(x => x) && filters.Any(x => x)) { if (actionParams.IsPlanActionAttente) { actionsFilter.Add(FicheSecurite.PlanActionAttente); } if (actionParams.IsPlanActionValide) { actionsFilter.Add(FicheSecurite.PlanActionValide); } if (actionParams.IsPlanActionRejete) { actionsFilter.Add(FicheSecurite.PlanActionRejete); } if (actionParams.IsPlanActionCloture) { actionsFilter.Add(FicheSecurite.PlanActionCloture); } if (actionParams.IsNouvelleFiche) { actionsFilter.Add(FicheSecurite.NouvelleFiche); } queryFicheSecurite = queryFicheSecurite.Where(actionsFilter.Join()); } if (actionParams.SiteId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.SiteId == actionParams.SiteId); } if (actionParams.ZoneId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.ZoneId == actionParams.ZoneId); } if (actionParams.LieuId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.LieuId == actionParams.LieuId); } if (actionParams.TypeId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecuriteTypeId == actionParams.TypeId); } if (!string.IsNullOrEmpty(actionParams.Code)) { queryFicheSecurite = queryFicheSecurite.Where(q => q.Code == actionParams.Code); } if (!string.IsNullOrEmpty(actionParams.Age)) { queryFicheSecurite = queryFicheSecurite.Where(q => q.Age == actionParams.Age); } if (actionParams.PosteDeTravailId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.PosteDeTravailId == actionParams.PosteDeTravailId); } if (actionParams.ServiceId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.ServiceId == actionParams.ServiceId); } if (!string.IsNullOrEmpty(actionParams.PersonneConcerneeNom)) { queryFicheSecurite = queryFicheSecurite.Where(q => q.PersonneConcernee.Nom == actionParams.PersonneConcerneeNom); } if (!string.IsNullOrEmpty(actionParams.ResponsableNom)) { queryFicheSecurite = queryFicheSecurite.Where(q => q.Responsable.Nom == actionParams.ResponsableNom); } if (actionParams.CotationFrequence.HasValue && actionParams.CotationFrequence != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.CotationFrequence == actionParams.CotationFrequence); } if (actionParams.CotationGravite.HasValue && actionParams.CotationGravite != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.CotationGravite == actionParams.CotationGravite); } if (actionParams.RisqueId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.RisqueId == actionParams.RisqueId); } if (actionParams.DangerId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.DangerId == actionParams.DangerId); } if (actionParams.CorpsHumainZoneId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.CorpsHumainZoneId == actionParams.CorpsHumainZoneId); } if (actionParams.PlageHoraireId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.PlageHoraireId == actionParams.PlageHoraireId); } if (actionParams.DateEvenementDebut.HasValue) { queryFicheSecurite = queryFicheSecurite.Where(q => q.DateEvenement >= actionParams.DateEvenementDebut); } if (actionParams.DateEvenementFin.HasValue) { queryFicheSecurite = queryFicheSecurite.Where(q => q.DateEvenement <= actionParams.DateEvenementFin); } if (actionParams.DateButoirDebut.HasValue) { queryFicheSecurite = queryFicheSecurite .Join(_db.CauseQSEs, fs => fs.FicheSecuriteID, c => c.FicheSecuriteId, (fs, c) => new { FicheSecurite = fs, CauseQSE = c }) .Join(_db.ActionQSEs, fs2 => fs2.CauseQSE.CauseQSEId, a => a.CauseQSEId, (fs2, a) => new { FicheSecurite2 = fs2.FicheSecurite, CauseQSE2 = fs2.CauseQSE, ActionQSE2 = a }) .Where(j => j.ActionQSE2.DateButoireInitiale >= actionParams.DateButoirDebut) .Select(q => q.FicheSecurite2) .Distinct(); } if (actionParams.DateButoirFin.HasValue) { queryFicheSecurite = queryFicheSecurite .Join(_db.CauseQSEs, fs => fs.FicheSecuriteID, c => c.FicheSecuriteId, (fs, c) => new { FicheSecurite = fs, CauseQSE = c }) .Join(_db.ActionQSEs, fs2 => fs2.CauseQSE.CauseQSEId, a => a.CauseQSEId, (fs2, a) => new { FicheSecurite2 = fs2.FicheSecurite, CauseQSE2 = fs2.CauseQSE, ActionQSE2 = a }) .Where(j => j.ActionQSE2.DateButoireInitiale <= actionParams.DateButoirFin) .Select(q => q.FicheSecurite2) .Distinct(); } if (actionParams.DateClotureDebut.HasValue) { queryFicheSecurite = queryFicheSecurite .Join(_db.CauseQSEs, fs => fs.FicheSecuriteID, c => c.FicheSecuriteId, (fs, c) => new { FicheSecurite = fs, CauseQSE = c }) .Join(_db.ActionQSEs, fs2 => fs2.CauseQSE.CauseQSEId, a => a.CauseQSEId, (fs2, a) => new { FicheSecurite2 = fs2.FicheSecurite, CauseQSE2 = fs2.CauseQSE, ActionQSE2 = a }) .Where(j => j.ActionQSE2.ClotureDate >= actionParams.DateClotureDebut) .Select(q => q.FicheSecurite2) .Distinct(); } if (actionParams.DateClotureFin.HasValue) { queryFicheSecurite = queryFicheSecurite .Join(_db.CauseQSEs, fs => fs.FicheSecuriteID, c => c.FicheSecuriteId, (fs, c) => new { FicheSecurite = fs, CauseQSE = c }) .Join(_db.ActionQSEs, fs2 => fs2.CauseQSE.CauseQSEId, a => a.CauseQSEId, (fs2, a) => new { FicheSecurite2 = fs2.FicheSecurite, CauseQSE2 = fs2.CauseQSE, ActionQSE2 = a }) .Where(j => j.ActionQSE2.ClotureDate >= actionParams.DateClotureFin) .Select(q => q.FicheSecurite2) .Distinct(); } int recordsFiltered = queryFicheSecurite.Count(); int recordsTotal = _db.FicheSecurites.Count(); queryFicheSecurite = queryFicheSecurite.OrderBy(i => i.WorkFlowCloturee && i.WorkFlowASEValidee).ThenBy(i => i.WorkFlowASEValidee).ThenBy(i => i.WorkFlowASERejetee).ThenBy(i => i.WorkFlowAttenteASEValidation).ThenBy(i => i.WorkFlowDiffusee); var orderOne = actionParams.Order.FirstOrDefault(); if (orderOne != null && orderOne.OrderingColumn == 1) { switch (orderOne.OrderingDirection) { case "asc": queryFicheSecurite = queryFicheSecurite.OrderBy(q => q.DateCreation); break; case "desc": queryFicheSecurite = queryFicheSecurite.OrderByDescending(fs => fs.DateCreation); break; } } if (actionParams.Length != -1) { queryFicheSecurite = queryFicheSecurite.Skip(actionParams.Start).Take(actionParams.Length); } var allRecords = queryFicheSecurite.ToList(); DataTableViewModel <FicheSecurite> dataTableViewModel = new DataTableViewModel <FicheSecurite>() { recordsTotal = recordsTotal, recordsFiltered = recordsFiltered, data = allRecords }; return(dataTableViewModel); } catch (Exception ex) { throw; } }
public DataTableViewModel <FicheSecuriteActionRecherche> GetAllActionFromParams(FicheSecuriteParams ficheSecuriteParams) { try { var queryFicheSecurite = from f in _db.FicheSecurites join c in _db.CauseQSEs on f.FicheSecuriteID equals c.FicheSecuriteId join a in _db.ActionQSEs on c.CauseQSEId equals a.CauseQSEId select new FicheSecuriteActionRecherche { FicheSecurite = f, CauseQSE = c, ActionQSE = a }; //TO CHECK : Peut-il etre REJETE ET EN ATTENTE VALIDATION List <Expression <Func <FicheSecuriteActionRecherche, bool> > > ficheSecuriteActionFilters = new List <Expression <Func <FicheSecuriteActionRecherche, bool> > >(); List <bool> filters = ficheSecuriteParams.GetBoolFilters(); if (!filters.All(x => x) && filters.Any(x => x)) { if (ficheSecuriteParams.IsPlanActionAttente) { ficheSecuriteActionFilters.Add(FicheSecuriteActionRecherche.PlanActionAttente); } if (ficheSecuriteParams.IsPlanActionValide) { ficheSecuriteActionFilters.Add(FicheSecuriteActionRecherche.PlanActionValide); } if (ficheSecuriteParams.IsPlanActionRejete) { ficheSecuriteActionFilters.Add(FicheSecuriteActionRecherche.PlanActionRejete); } if (ficheSecuriteParams.IsPlanActionCloture) { ficheSecuriteActionFilters.Add(FicheSecuriteActionRecherche.PlanActionCloture); } if (ficheSecuriteParams.IsFicheSecuriteCloture) { ficheSecuriteActionFilters.Add(FicheSecuriteActionRecherche.FicheSecuriteCloture); } if (ficheSecuriteParams.IsNouvelleFiche) { ficheSecuriteActionFilters.Add(FicheSecuriteActionRecherche.NouvelleFiche); } queryFicheSecurite = queryFicheSecurite.Where(ficheSecuriteActionFilters.Join()); } if (ficheSecuriteParams.SiteId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.SiteId == ficheSecuriteParams.SiteId); } if (ficheSecuriteParams.ZoneId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.ZoneId == ficheSecuriteParams.ZoneId); } if (ficheSecuriteParams.LieuId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.LieuId == ficheSecuriteParams.LieuId); } if (ficheSecuriteParams.TypeId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.FicheSecuriteTypeId == ficheSecuriteParams.TypeId); } if (!string.IsNullOrEmpty(ficheSecuriteParams.Code)) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.Code == ficheSecuriteParams.Code); } if (!string.IsNullOrEmpty(ficheSecuriteParams.Age)) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.Age == ficheSecuriteParams.Age); } if (ficheSecuriteParams.PosteDeTravailId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.PosteDeTravailId == ficheSecuriteParams.PosteDeTravailId); } if (ficheSecuriteParams.ServiceId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.ServiceId == ficheSecuriteParams.ServiceId); } if (!string.IsNullOrEmpty(ficheSecuriteParams.PersonneConcerneeNom)) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.PersonneConcernee.Nom == ficheSecuriteParams.PersonneConcerneeNom); } if (!string.IsNullOrEmpty(ficheSecuriteParams.ResponsableNom)) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.Responsable.Nom == ficheSecuriteParams.ResponsableNom); } if (ficheSecuriteParams.CotationFrequence.HasValue) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.CotationFrequence == ficheSecuriteParams.CotationFrequence); } if (ficheSecuriteParams.CotationGravite.HasValue) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.CotationGravite == ficheSecuriteParams.CotationGravite); } if (ficheSecuriteParams.RisqueId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.RisqueId == ficheSecuriteParams.RisqueId); } if (ficheSecuriteParams.DangerId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.DangerId == ficheSecuriteParams.DangerId); } if (ficheSecuriteParams.CorpsHumainZoneId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.CorpsHumainZoneId == ficheSecuriteParams.CorpsHumainZoneId); } if (ficheSecuriteParams.PlageHoraireId != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.PlageHoraireId == ficheSecuriteParams.PlageHoraireId); } if (ficheSecuriteParams.DateEvenementDebut.HasValue) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.DateEvenement >= ficheSecuriteParams.DateEvenementDebut); } if (ficheSecuriteParams.DateEvenementFin.HasValue) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.DateEvenement <= ficheSecuriteParams.DateEvenementFin); } if (ficheSecuriteParams.Criticite != 0) { queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.CotationFrequence * q.FicheSecurite.CotationGravite == ficheSecuriteParams.Criticite); } if (ficheSecuriteParams.CriticiteNiveau != CriticiteNiveauEnum.NULL) { switch (ficheSecuriteParams.CriticiteNiveau) { case CriticiteNiveauEnum.BAS: queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.CotationFrequence * q.FicheSecurite.CotationGravite < 8); break; case CriticiteNiveauEnum.MOYEN: queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.CotationFrequence * q.FicheSecurite.CotationGravite >= 8 && q.FicheSecurite.CotationFrequence * q.FicheSecurite.CotationGravite <= 20); break; case CriticiteNiveauEnum.HAUT: queryFicheSecurite = queryFicheSecurite.Where(q => q.FicheSecurite.CotationFrequence * q.FicheSecurite.CotationGravite > 20); break; } } if (ficheSecuriteParams.DateButoirDebut != null) { queryFicheSecurite = queryFicheSecurite .Join(_db.CauseQSEs, fs => fs.FicheSecurite.FicheSecuriteID, c => c.FicheSecuriteId, (fs, c) => new { FicheSecurite = fs, CauseQSE = c }) .Join(_db.ActionQSEs, fs2 => fs2.CauseQSE.CauseQSEId, a => a.CauseQSEId, (fs2, a) => new { FicheSecurite2 = fs2.FicheSecurite, CauseQSE2 = fs2.CauseQSE, ActionQSE2 = a }) .Select(q => q.FicheSecurite2) .Distinct(); queryFicheSecurite = queryFicheSecurite .Where(w => w.ActionQSE.DateButoireInitiale >= ficheSecuriteParams.DateButoirDebut); } if (ficheSecuriteParams.DateButoirFin != null) { queryFicheSecurite = queryFicheSecurite .Join(_db.CauseQSEs, fs => fs.FicheSecurite.FicheSecuriteID, c => c.FicheSecuriteId, (fs, c) => new { FicheSecurite = fs, CauseQSE = c }) .Join(_db.ActionQSEs, fs2 => fs2.CauseQSE.CauseQSEId, a => a.CauseQSEId, (fs2, a) => new { FicheSecurite2 = fs2.FicheSecurite, CauseQSE2 = fs2.CauseQSE, ActionQSE2 = a }) .Select(q => q.FicheSecurite2) .Distinct(); queryFicheSecurite = queryFicheSecurite .Where(w => w.ActionQSE.DateButoireInitiale <= ficheSecuriteParams.DateButoirFin); } if (ficheSecuriteParams.DateClotureDebut.HasValue) { queryFicheSecurite = queryFicheSecurite .Join(_db.CauseQSEs, fs => fs.FicheSecurite.FicheSecuriteID, c => c.FicheSecuriteId, (fs, c) => new { FicheSecurite = fs, CauseQSE = c }) .Join(_db.ActionQSEs, fs2 => fs2.CauseQSE.CauseQSEId, a => a.CauseQSEId, (fs2, a) => new { FicheSecurite2 = fs2.FicheSecurite, CauseQSE2 = fs2.CauseQSE, ActionQSE2 = a }) .Select(q => q.FicheSecurite2) .Distinct(); queryFicheSecurite = queryFicheSecurite .Where(w => w.ActionQSE.ClotureDate >= ficheSecuriteParams.DateClotureDebut); } if (ficheSecuriteParams.DateClotureFin != null) { queryFicheSecurite = queryFicheSecurite .Join(_db.CauseQSEs, fs => fs.FicheSecurite.FicheSecuriteID, c => c.FicheSecuriteId, (fs, c) => new { FicheSecurite = fs, CauseQSE = c }) .Join(_db.ActionQSEs, fs2 => fs2.CauseQSE.CauseQSEId, a => a.CauseQSEId, (fs2, a) => new { FicheSecurite2 = fs2.FicheSecurite, CauseQSE2 = fs2.CauseQSE, ActionQSE2 = a }) .Select(q => q.FicheSecurite2) .Distinct(); queryFicheSecurite = queryFicheSecurite .Where(w => w.ActionQSE.ClotureDate <= ficheSecuriteParams.DateClotureFin); } if (!string.IsNullOrEmpty(ficheSecuriteParams.ResponsableNomAction)) { queryFicheSecurite = queryFicheSecurite .Join(_db.CauseQSEs, fs => fs.FicheSecurite.FicheSecuriteID, c => c.FicheSecuriteId, (fs, c) => new { FicheSecurite = fs, CauseQSE = c }) .Join(_db.ActionQSEs, fs2 => fs2.CauseQSE.CauseQSEId, a => a.CauseQSEId, (fs2, a) => new { FicheSecurite2 = fs2.FicheSecurite, CauseQSE2 = fs2.CauseQSE, ActionQSE2 = a }) .Select(q => q.FicheSecurite2) .Distinct(); queryFicheSecurite = queryFicheSecurite .Where(w => w.ActionQSE.Responsable.Nom == ficheSecuriteParams.ResponsableNomAction); } int recordsFiltered = queryFicheSecurite.Count(); int recordsTotal = _db.FicheSecurites.Count(); queryFicheSecurite = queryFicheSecurite.OrderBy(i => i.FicheSecurite.WorkFlowFicheSecuriteCloturee).ThenBy(i => i.FicheSecurite.WorkFlowCloturee && i.FicheSecurite.WorkFlowASEValidee).ThenBy(i => i.FicheSecurite.WorkFlowASEValidee).ThenBy(i => i.FicheSecurite.WorkFlowASERejetee).ThenBy(i => i.FicheSecurite.WorkFlowAttenteASEValidation).ThenBy(i => i.FicheSecurite.WorkFlowDiffusee); var orderOne = ficheSecuriteParams.Order.FirstOrDefault(); if (orderOne != null) { Expression <Func <FicheSecuriteActionRecherche, object> > filterColumn = null; switch (orderOne.OrderingColumn) { case 1: filterColumn = q => q.FicheSecurite.DateCreation; break; case 2: filterColumn = q => q.ActionQSE.Responsable.Nom; break; case 4: filterColumn = q => q.ActionQSE.DateButoireInitiale; break; case 5: filterColumn = q => q.ActionQSE.DateButoireNouvelle; break; case 6: filterColumn = q => q.ActionQSE.ClotureDate; break; } if (filterColumn != null) { queryFicheSecurite = queryFicheSecurite.ObjectSort(filterColumn, orderOne.OrderingDirection == "desc" ? SortOrder.Descending : SortOrder.Ascending); } } if (ficheSecuriteParams.Length != -1) { queryFicheSecurite = queryFicheSecurite.Skip(ficheSecuriteParams.Start).Take(ficheSecuriteParams.Length); } var allRecords = queryFicheSecurite.ToList(); DataTableViewModel <FicheSecuriteActionRecherche> dataTableViewModel = new DataTableViewModel <FicheSecuriteActionRecherche> { recordsTotal = recordsTotal, recordsFiltered = recordsFiltered, data = allRecords }; return(dataTableViewModel); } catch (Exception ex) { throw; } }