コード例 #1
0
        private string addFicheSecuriteResponsableEmailToString(String to, FicheSecurite ficheSecurite)
        {
            _activeDirectoryUtilisateurRepository = new ActiveDirectoryUtilisateurRepository();

            ActiveDirectoryUtilisateurDTO ResponsableActiveDirectoryUtilisateurDTO;

            ResponsableActiveDirectoryUtilisateurDTO = _activeDirectoryUtilisateurRepository.GetActiveDirectoryUtilisateurByNomPrenom(ficheSecurite.Responsable.Nom, ficheSecurite.Responsable.Prenom);


            String toResponsable = "";

            if (ResponsableActiveDirectoryUtilisateurDTO != null)
            {
                toResponsable = ResponsableActiveDirectoryUtilisateurDTO.email;
            }

            if (toResponsable != "" && toResponsable != null)
            {
                if (to != "" && toResponsable != null)
                {
                    to += ",";
                }
                to += toResponsable;
            }

            return(to);
        }
コード例 #2
0
        public void FicheSecuriteOpenOrClose(ActionQSE actionQSE)
        {
            var queryFicheSecurite = from a in db.ActionQSEs
                                     join c in db.CauseQSEs on a.CauseQSEId equals c.CauseQSEId
                                     join fs in db.FicheSecurites on c.FicheSecuriteId equals fs.FicheSecuriteID
                                     where a.ActionQSEId == actionQSE.ActionQSEId
                                     select fs;
            FicheSecurite ficheSecuriteForAction = queryFicheSecurite.FirstOrDefault();

            var queryActionQSEsForFicheSecurite = from a in db.ActionQSEs
                                                  join c in db.CauseQSEs on a.CauseQSEId equals c.CauseQSEId
                                                  join fs in db.FicheSecurites on c.FicheSecuriteId equals fs.FicheSecuriteID
                                                  where fs.FicheSecuriteID == ficheSecuriteForAction.FicheSecuriteID
                                                  select a;
            List <ActionQSE> AllActionQSEForFicheSecurite = queryActionQSEsForFicheSecurite.ToList();

            Boolean IsFicheSecuriteCloturee = true;

            foreach (ActionQSE ActionQSEForFicheSecurite in AllActionQSEForFicheSecurite)
            {
                IsFicheSecuriteCloturee = (ActionQSEForFicheSecurite.ClotureDate != null) ? IsFicheSecuriteCloturee : false;
            }

            ficheSecuriteForAction.WorkFlowCloturee = IsFicheSecuriteCloturee;

            db.SaveChanges();
        }
コード例 #3
0
        public void SendEmailValidationPlanActionFicheSecurite(FicheSecurite ficheSecurite)
        {
            Site site = db.Sites.First(s => s.SiteID == ficheSecurite.SiteId);

            string to = GetEmailFor("ValidationPlanActionFicheSecurite", db.Sites.Find(ficheSecurite.SiteId).Trigramme);

            to = addFicheSecuriteResponsableEmailToString(to, ficheSecurite);

            to = addActionResponsableEmailToString(to, ficheSecurite);

            MailAddress from    = new MailAddress("*****@*****.**");
            string      subject = "Validation Plan d'action";
            string      body    = "<H4>Le plan d'action de la Fiche Securite " + ficheSecurite.Code + " vient d'être validé</H4> </br></br>";

            body += "</br> Voici les actions à réaliser : </br></br>";

            foreach (CauseQSE Cause in ficheSecurite.CauseQSEs)
            {
                foreach (ActionQSE Action in Cause.ActionQSEs)
                {
                    body += "Responsable : " + Action.Responsable.Prenom + " " + Action.Responsable.Nom + "</br>Action : " + Action.Description + "</br>Date butoir : " + Action.DateButoireInitiale;
                }
            }

            if (to != "" && to != null)
            {
                SendEmail(from, subject, body, to);
            }
        }
コード例 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            FicheSecurite ficheSecurite = db.FicheSecurites.Find(id);

            db.FicheSecurites.Remove(ficheSecurite);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #5
0
        // POST api/fichesecuriteapi
        public HttpResponseMessage Post(FicheSecurite FicheSecurite)
        {
            FicheSecurite.DateCreation = DateTime.Now;

            FicheSecurite.CompteurAnnuelSite = 1;

            var QueryLastFicheSecuriteForSiteAnnee = from f in db.FicheSecurites
                                                     where f.SiteId == FicheSecurite.SiteId &&
                                                     f.DateEvenement.Year == FicheSecurite.DateEvenement.Year
                                                     orderby f.CompteurAnnuelSite descending
                                                     select f;

            FicheSecurite LastFicheSecuriteForSiteAnnee = QueryLastFicheSecuriteForSiteAnnee.FirstOrDefault();

            if (LastFicheSecuriteForSiteAnnee != null)
            {
                if (LastFicheSecuriteForSiteAnnee.DateEvenement.Year == FicheSecurite.DateEvenement.Year)
                {
                    FicheSecurite.CompteurAnnuelSite = LastFicheSecuriteForSiteAnnee.CompteurAnnuelSite + 1;
                }
            }

            Site site = db.Sites.First(s => s.SiteID == FicheSecurite.SiteId);

            FicheSecurite.Code += site.Trigramme + "-" + FicheSecurite.DateEvenement.Year + "-" + FicheSecurite.CompteurAnnuelSite;

            FicheSecurite.Responsable = _personneAnnuaireService.GetPersonneFromAllAnnuaireOrCreate(
                FicheSecurite.Responsable.Nom, FicheSecurite.Responsable.Prenom, FicheSecurite.ResponsableId, db
                );
            FicheSecurite.PersonneConcernee = _personneAnnuaireService.GetPersonneFromAllAnnuaireOrCreate(
                FicheSecurite.PersonneConcernee.Nom, FicheSecurite.PersonneConcernee.Prenom, FicheSecurite.PersonneConcerneeId, db
                );;

            FicheSecurite.WorkFlowDiffusee = true;

            db.FicheSecurites.Add(FicheSecurite);

            //try
            //{
            db.SaveChanges();

            //Url.Action("Edit", "FicheSecurite", new System.Web.Routing.RouteValueDictionary(new { id = id }), "http", Request.Url.Host)
            //Url.Link("DefaultApi", new { controller = "Albums", id = 3})
            //UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext);
            //var a = url.Action("Edit", "FicheSecurite", new System.Web.Routing.RouteValueDictionary(new { id = FicheSecurite.FicheSecuriteID }), "http", HttpContext.Current.Request.Url.Host);

            _emailService.SendEmailDiffusionFicheSecurite(FicheSecurite);

            return(Request.CreateResponse(HttpStatusCode.OK, FicheSecurite));
            //}
            //catch (Exception e)
            //{


            //return Request.CreateResponse(HttpStatusCode.InternalServerError, e);
            //}
        }
コード例 #6
0
 public FicheSecuriteViewModel()
 {
     this.FicheSecurite        = new FicheSecurite();
     this.AllZone              = new List <Zone>();
     this.AllLieu              = new List <Lieu>();
     this.AllSite              = db.Sites.ToList(); // new List<Site>();
     this.AllFicheSecuriteType = db.FicheSecuriteTypes.ToList();
     this.AllDanger            = db.Dangers.ToList();
     this.AllPlageHoraire      = db.PlageHoraires.ToList();
     this.AllRisqueType        = db.RisqueTypes.ToList();
     this.AllRisque            = db.Risques.ToList();
 }
コード例 #7
0
        public HttpResponseMessage ChangeWorkFlowEtat(FicheSecurite ficheSecurite, Int32 id, string param1)
        {
            FicheSecurite FicheSecurite = _ficheSecuriteRepository.Get(id);

            switch (param1)
            {
            case "AttenteASEValidation":
                FicheSecurite.WorkFlowASEValidee            = false;
                FicheSecurite.WorkFlowASERejetee            = false;
                FicheSecurite.WorkFlowAttenteASEValidation  = true;
                FicheSecurite.WorkFlowFicheSecuriteCloturee = false;
                _emailService.SendEmailDiffusionPlanActionFicheSecurite(ficheSecurite);
                break;

            case "ASEValidee":
                FicheSecurite.WorkFlowAttenteASEValidation  = false;
                FicheSecurite.WorkFlowASEValidee            = true;
                FicheSecurite.WorkFlowASERejetee            = false;
                FicheSecurite.WorkFlowFicheSecuriteCloturee = false;
                _emailService.SendEmailValidationPlanActionFicheSecurite(ficheSecurite);
                break;

            case "ASERejetee":
                FicheSecurite.WorkFlowAttenteASEValidation  = false;
                FicheSecurite.WorkFlowASEValidee            = false;
                FicheSecurite.WorkFlowASERejetee            = true;
                FicheSecurite.WorkFlowASERejeteeCause       = ficheSecurite.WorkFlowASERejeteeCause;
                FicheSecurite.WorkFlowFicheSecuriteCloturee = false;
                _emailService.SendEmailRejetPlanActionFicheSecurite(ficheSecurite);
                break;

            case "ASEFicheSecuriteCloturee":
                FicheSecurite.WorkFlowAttenteASEValidation  = false;
                FicheSecurite.WorkFlowASEValidee            = true;
                FicheSecurite.WorkFlowASERejetee            = false;
                FicheSecurite.WorkFlowFicheSecuriteCloturee = true;
                // _emailService.SendEmailRejetPlanActionFicheSecurite(ficheSecurite); TODO : Voir si il faut un email à cette étape
                break;

            case "ASEFicheSecuriteOuvrir":
                FicheSecurite.WorkFlowAttenteASEValidation  = false;
                FicheSecurite.WorkFlowASEValidee            = true;
                FicheSecurite.WorkFlowASERejetee            = false;
                FicheSecurite.WorkFlowFicheSecuriteCloturee = false;
                // _emailService.SendEmailRejetPlanActionFicheSecurite(ficheSecurite); TODO : Voir si il faut un email à cette étape
                break;
            }

            _ficheSecuriteRepository._db.SaveChanges();

            return(Request.CreateResponse(HttpStatusCode.OK, FicheSecurite));
        }
コード例 #8
0
        // GET: /FicheSecurite/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            FicheSecurite ficheSecurite = db.FicheSecurites.Find(id);

            if (ficheSecurite == null)
            {
                return(HttpNotFound());
            }
            return(View("~/Views/HSE/FicheSecurite/Delete.cshtml", ficheSecurite));
        }
コード例 #9
0
        // DELETE api/fichesecuriteapi/5
        public HttpResponseMessage Delete(int id)
        {
            FicheSecurite FicheSecurite = db.FicheSecurites.Find(id);

            if (FicheSecurite == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            db.FicheSecurites.Remove(FicheSecurite);
            db.SaveChanges();

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
コード例 #10
0
        public HttpResponseMessage Put(int id, FicheSecurite ficheSecurite)
        {
            var currentFicheSecurite = db.FicheSecurites.Find(ficheSecurite.FicheSecuriteID);

            db.Entry(currentFicheSecurite).CurrentValues.SetValues(ficheSecurite);

            db.Entry(currentFicheSecurite).State = EntityState.Modified;


            db.SaveChanges();


            return(Request.CreateResponse(HttpStatusCode.OK, currentFicheSecurite));
        }
コード例 #11
0
        public HttpResponseMessage PutCHSCTFields(FicheSecurite ficheSecurite, Int32 id, string param1)
        {
            FicheSecurite ficheSecuriteToEdit = db.FicheSecurites.Find(ficheSecurite.FicheSecuriteID);

            ficheSecuriteToEdit.EnqueteDate         = ficheSecurite.EnqueteDate;
            ficheSecuriteToEdit.EnqueteProtagoniste = ficheSecurite.EnqueteProtagoniste;
            ficheSecuriteToEdit.EnqueteRealisee     = ficheSecurite.EnqueteRealisee;
            ficheSecuriteToEdit.CHSCTMembre         = ficheSecurite.CHSCTMembre;


            //db.Entry(ficheSecurite).State = EntityState.Modified;


            db.SaveChanges();


            return(Request.CreateResponse(HttpStatusCode.OK));
        }
コード例 #12
0
        public void SendEmailDiffusionPlanActionFicheSecurite(FicheSecurite ficheSecurite)
        {
            Site site = db.Sites.First(s => s.SiteID == ficheSecurite.SiteId);

            string to = GetEmailFor("DiffusionPlanActionFicheSecurite", db.Sites.Find(ficheSecurite.SiteId).Trigramme);

            to = addFicheSecuriteResponsableEmailToString(to, ficheSecurite);

            to = addActionResponsableEmailToString(to, ficheSecurite);

            MailAddress from    = new MailAddress("*****@*****.**");
            string      subject = "Diffusion Plan d'action";
            string      body    = "<H4>Le plan d'action de la Fiche Securite " + ficheSecurite.Code + " vient d'être diffusé</H4> </br>";

            if (to != "" && to != null)
            {
                SendEmail(from, subject, body, to);
            }
        }
コード例 #13
0
        public void SendEmailRejetPlanActionFicheSecurite(FicheSecurite ficheSecurite)
        {
            Site site = db.Sites.First(s => s.SiteID == ficheSecurite.SiteId);

            string to = GetEmailFor("RejetPlanActionFicheSecurite", db.Sites.Find(ficheSecurite.SiteId).Trigramme);

            to = addFicheSecuriteResponsableEmailToString(to, ficheSecurite);

            to = addActionResponsableEmailToString(to, ficheSecurite);

            MailAddress from    = new MailAddress("*****@*****.**");
            string      subject = "Rejet Plan d'action";
            string      body    = "<H4>Le plan d'action de la Fiche Securite " + ficheSecurite.Code + " vient d'être rejeté</H4> Voici la cause du rejet : </br>" + ficheSecurite.WorkFlowASERejeteeCause;

            if (to != "" && to != null)
            {
                SendEmail(from, subject, body, to);
            }
        }
コード例 #14
0
 public FicheSecuriteViewModel(
     FicheSecurite ficheSecurite, List <Zone> AllZone, List <Lieu> AllLieu, List <Service> AllService, List <PosteDeTravail> AllPosteDeTravail
     )
 {
     this.FicheSecurite        = ficheSecurite;
     this.AllZone              = AllZone;
     this.AllLieu              = AllLieu;
     this.AllService           = AllService;
     this.AllPosteDeTravail    = AllPosteDeTravail;
     this.AllSite              = db.Sites.ToList(); // new List<Site>();
     this.AllFicheSecuriteType = db.FicheSecuriteTypes.ToList();
     this.AllDanger            = db.Dangers.ToList();
     this.AllPlageHoraire      = db.PlageHoraires.ToList();
     this.AllCorpsHumainZone   = db.CorpsHumainZones.ToList();
     this.AllRisqueType        = db.RisqueTypes.ToList();
     this.AllRisque            = db.Risques.ToList();
     this.FicheSecuriteDate    = this.FicheSecurite.DateEvenement.Date.ToString("dd/MM/yyyy");
     this.FicheSecuriteHeure   = this.FicheSecurite.DateEvenement.Date.ToString("HH:mm");
 }
コード例 #15
0
        public void SendEmailDiffusionFicheSecurite(FicheSecurite FicheSecurite)
        {
            MailMessage mail = new MailMessage();

            // TODO : Créer une classe pour construire des adresses ... ?
            UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext);
            string    urlToFicheSecurite = url.Action("Edit", "FicheSecurite", new System.Web.Routing.RouteValueDictionary(new { id = FicheSecurite.FicheSecuriteID }), "http", HttpContext.Current.Request.Url.Host);


            string ActionImmediate2 = "";

            if (FicheSecurite.ActionImmediate2 != null && FicheSecurite.ActionImmediate2 != "")
            {
                ActionImmediate2 = "<div>&nbsp;&nbsp;-&nbsp;" + FicheSecurite.ActionImmediate2 + "</div>";
            }

            String body = "<div style='font-family: Verdana, sans-serif;'><H1 style='background-color:#C42031;color:#FFFFFF;text-align:center;border-radius: 25px;'>Nouvelle Fiche Sécurité à " + FicheSecurite.Site.Trigramme + "</H1>" +
                          "<div><span style='font-weight: bold;text-decoration: underline;'>" + db.FicheSecuriteTypes.Find(FicheSecurite.FicheSecuriteTypeId).Nom + "</span>" +
                          " de <span style='font-weight: bold;text-decoration: underline;'>" + FicheSecurite.PersonneConcernee.Prenom + " " + FicheSecurite.PersonneConcernee.Nom + "</span></div>" +
                          "<br/>" +
                          "<div style='font-weight: bold;text-decoration: underline;'>Description :</div>" +
                          "<div>" + FicheSecurite.Description + "</div>" +
                          "<br/>" +
                          "<div style='font-weight: bold;text-decoration: underline;'>Action(s) immédiate(s) :</div>" +
                          "<div>&nbsp;&nbsp;-&nbsp;" + FicheSecurite.ActionImmediate1 + "</div>" +
                          ActionImmediate2 +
                          "<br/>" +
                          "<div> Lien vers la fiche  : " + urlToFicheSecurite + "</div></div>";

            MailAddress from    = new MailAddress("*****@*****.**");
            string      subject = "Nouvelle Fiche Sécurité à " + FicheSecurite.Site.Trigramme;


            string to = GetEmailFor("DiffusionFicheSecurite", FicheSecurite.Site.Trigramme); //db.Sites.Find(FicheSecurite.SiteId).Trigramme);

            to = addFicheSecuriteResponsableEmailToString(to, FicheSecurite);

            if (to != "" && to != null)
            {
                SendEmail(from, subject, body, to);
            }
        }
コード例 #16
0
        public ActionResult Edit(Boolean HeureEvenementValide, [Bind(Include = "FicheSecuriteID,Code,Type,Nom,Prenom,PosteDeTravail,Service,Responsable,DateCreation,Zone,Lieu,PersonnesConcernees,Description,CotationFrequence,CotationGravite,CotationVolume,SiteId,FicheSecuriteTypeId,Risque,Age,PlageHoraireId,Temoins, ActionImmediate1, ActionImmediate2,CorpsHumainZone")] FicheSecurite ficheSecurite)
        {
            if (ModelState.IsValid)
            {
                db.Entry(ficheSecurite).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.SiteId = new SelectList(db.Sites, "SiteID", "Nom", ficheSecurite.SiteId);
            ViewBag.ZoneId = new SelectList(db.Zones, "ZoneId", "Nom", ficheSecurite.ZoneId);
            ViewBag.LieuId = new SelectList(db.Lieux, "LieuId", "Nom", ficheSecurite.LieuId);
            ViewBag.FicheSecuriteTypeId = new SelectList(db.FicheSecuriteTypes, "FicheSecuriteTypeId", "Nom");
            ViewBag.DangerId            = new SelectList(db.Dangers, "DangerId", "Nom");
            ViewBag.PlageHoraireId      = new SelectList(db.PlageHoraires, "PlageHoraireId", "Nom");

            //int CotationFrequence = ficheSecurite.CotationFrequence != null ? ficheSecurite.CotationFrequence : 0;
            //int CotationGravite = ficheSecurite.CotationGravite != null ? ficheSecurite.CotationGravite : 0;

            ViewBag.CriticiteBrute = ficheSecurite.CotationFrequence * ficheSecurite.CotationGravite;

            return(View("~/Views/HSE/FicheSecurite/Create.cshtml", ficheSecurite));
        }
コード例 #17
0
        private string addActionResponsableEmailToString(String to, FicheSecurite ficheSecurite)
        {
            _activeDirectoryUtilisateurRepository = new ActiveDirectoryUtilisateurRepository();

            ActiveDirectoryUtilisateurDTO ResponsableActiveDirectoryUtilisateurDTO;

            List <Personne> allActionResponsable = new List <Personne>();

            foreach (CauseQSE cause in ficheSecurite.CauseQSEs)
            {
                foreach (ActionQSE action in cause.ActionQSEs)
                {
                    allActionResponsable.Add(action.Responsable);
                }
            }

            for (int i = 0; i < allActionResponsable.Count(); i++)
            {
                String toResponsable = "";
                ResponsableActiveDirectoryUtilisateurDTO = _activeDirectoryUtilisateurRepository.GetActiveDirectoryUtilisateurByNomPrenom(allActionResponsable[i].Nom, allActionResponsable[i].Prenom);


                if (ResponsableActiveDirectoryUtilisateurDTO != null)
                {
                    toResponsable = ResponsableActiveDirectoryUtilisateurDTO.email;
                }

                if (toResponsable != "" && toResponsable != null)
                {
                    if (to != "" && toResponsable != null)
                    {
                        to += ",";
                    }
                    to += toResponsable;
                }
            }

            return(to);
        }
コード例 #18
0
        public ActionResult Create(DateTime DateEvenement, Boolean HeureEvenementValide, String HeureEvenement, String CorpsHumainSelectedHidden, [Bind(Include = "FicheSecuriteID,Code,Type,Nom,Prenom,PosteDeTravail,DateCreation,Service,Responsable,ZoneId,LieuId,PersonnesConcernees,Description,CotationFrequence,CotationGravite,CotationVolume,SiteId,FicheSecuriteTypeId,Risque,Age,PlageHoraireId,Temoins,ActionImmediate1,ActionImmediate2,CorpsHumainZone, DangerId")] FicheSecurite ficheSecurite)
        {
            TimeSpan ts = new TimeSpan(10, 30, 0);

            //ficheSecurite.DateEvenement = HeureEvenementValide ? ficheSecurite.DateEvenement :

            if (HeureEvenementValide)
            {
                ficheSecurite.DateEvenement = DateEvenement + TimeSpan.Parse(HeureEvenement + ":00");
            }

            ficheSecurite.DateCreation = DateTime.Now;

            //CorpsHumainZone corpsHumainZone = (CorpsHumainZone)db.CorpsHumainZones.SingleOrDefault(c => c.Code == CorpsHumainSelectedHidden);

            var query = from a in db.CorpsHumainZones
                        where a.Code == CorpsHumainSelectedHidden
                        select a;

            CorpsHumainZone corpsHumainZone = query.FirstOrDefault();


            ficheSecurite.CorpsHumainZone = corpsHumainZone;

            var errors = ViewData.ModelState.Where(n => n.Value.Errors.Count > 0).ToList();

            if (ModelState.IsValid)
            {
                db.FicheSecurites.Add(ficheSecurite);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            List <Zone> Zones = new List <Zone>();
            List <Lieu> Lieux = new List <Lieu>();

            String[] roles = Roles.GetRolesForUser();
            //foreach (String NomRole in roles){
            //    Console.WriteLine("Role : " + NomRole);

            //}


            //Site site = db.Sites.Find;

            ViewBag.SiteId = new SelectList(db.Sites, "SiteID", "Trigramme", ficheSecurite.SiteId);
            ViewBag.ZoneId = new SelectList(Zones, "ZoneId", "Nom");
            ViewBag.LieuId = new SelectList(Lieux, "LieuId", "Nom");
            ViewBag.FicheSecuriteTypeId = new SelectList(db.FicheSecuriteTypes, "FicheSecuriteTypeId", "Nom");
            ViewBag.DangerId            = new SelectList(db.Dangers, "DangerId", "Nom");
            ViewBag.PlageHoraireId      = new SelectList(db.PlageHoraires, "PlageHoraireId", "Nom");

            ViewBag.DateEvenement  = ficheSecurite.DateEvenement.Date.ToString("dd/MM/yyyy");
            ViewBag.HeureEvenement = ficheSecurite.DateEvenement.Date.ToString("HH:mm");

            return(View("~/Views/HSE/FicheSecurite/Create.cshtml", ficheSecurite));
        }
コード例 #19
0
        // GET api/fichesecuriteapi/5
        public HttpResponseMessage Get(int id)
        {
            var boo = User.Identity.IsAuthenticated;
            var z   = User.Identity.GetUserId();
            var p   = 1;

            _activeDirectoryUtilisateurRepository = new ActiveDirectoryUtilisateurRepository();

            FicheSecurite         ficheSecurite;
            List <Zone>           AllZone;
            List <Lieu>           AllLieu;
            List <Service>        AllService;
            List <PosteDeTravail> AllPosteDeTravail;

            // Si l'ID = -1 >> Nouvelle Fiche

            if (id == -1)
            {
                Site SiteUser = _activeDirectoryUtilisateurRepository.GetCurrentUserSite();

                ficheSecurite = new FicheSecurite()
                {
                    CotationFrequence            = 1,
                    CotationGravite              = 1,
                    SiteId                       = SiteUser.SiteID,
                    WorkFlowDiffusee             = false,
                    WorkFlowAttenteASEValidation = false,
                    WorkFlowASEValidee           = false,
                    WorkFlowASERejetee           = false,
                    WorkFlowCloturee             = false
                };

                var queryZone = from a in db.Zones
                                where a.SiteId == SiteUser.SiteID
                                select a;
                AllZone = queryZone.ToList();

                AllLieu = new List <Lieu>();

                var queryService = from a in db.Services
                                   where a.SiteId == SiteUser.SiteID
                                   select a;
                AllService = queryService.ToList();

                AllPosteDeTravail = new List <PosteDeTravail>();
            }
            // Si l'ID != -1 >> Fiche existante
            else
            {
                ficheSecurite = _ficheSecuriteRepository.Get(id);

                if (ficheSecurite == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound));
                }

                var queryZone = from a in db.Zones
                                where a.SiteId == ficheSecurite.SiteId
                                select a;
                AllZone = queryZone.ToList();

                var queryLieu = from a in db.Lieux
                                where a.ZoneId == ficheSecurite.ZoneId
                                orderby a.Rang
                                select a;
                AllLieu = queryLieu.ToList();

                var queryService = from a in db.Services
                                   where a.SiteId == ficheSecurite.SiteId
                                   select a;
                AllService = queryService.ToList();

                var queryPosteDeTravail = from a in db.PosteDeTravails
                                          where a.ZoneId == ficheSecurite.ZoneId
                                          orderby a.Rang
                                          select a;
                AllPosteDeTravail = queryPosteDeTravail.ToList();
            }



            var ficheSecuriteViewModel = new FicheSecuriteViewModel(ficheSecurite, AllZone, AllLieu, AllService, AllPosteDeTravail);

            return(Request.CreateResponse(HttpStatusCode.OK, ficheSecuriteViewModel));
        }