コード例 #1
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);
            //}
        }
コード例 #2
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));
        }
コード例 #3
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));
        }
コード例 #4
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));
        }
コード例 #5
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));
        }
コード例 #6
0
        public FicheSecurite Get(int id)
        {
            FicheSecurite ficheSecurite = _db.FicheSecurites.SingleOrDefault(r => r.FicheSecuriteID == id);

            return(ficheSecurite);
        }
コード例 #7
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));
        }