示例#1
0
        public ActionResult Refuser(int?id)
        {
            tblSoumission soumi      = provider.ReturnUneSoumi(id);
            tblAppelOffre appelOffre = provider.SelectAppelParSoumi(id);

            soumi.statut = 0;
            provider.Save();
            return(RedirectToAction("Details/" + appelOffre.noAppelOffre, "AppellOffre"));
        }
 public void AjoutAppelOffre(tblAppelOffre appel)
 {
     try
     {
         db.tblAppelOffre.Add(appel);
     }
     catch (Exception e)
     {
         LayoutController.erreur = e;
     }
 }
        public ActionResult Edit([Bind(Include = "noAppelOffre,nom,dateRequis,dateEnvoi,description,dateSupprime,noEvenement,noMedia")] tblAppelOffre tblAppelOffre)
        {
            if (ModelState.IsValid)
            {
                var statut    = provider.ReturnStatAppel(tblAppelOffre);
                var evenement = provider.ReturnEvenAppel(tblAppelOffre);
                var media     = provider.ReturnMediaAppel(tblAppelOffre);

                if (Request.Form.Get("save") == "Save")
                {
                    if (provider.RetunSoumission(tblAppelOffre.noAppelOffre).Count != 0)
                    {
                        foreach (tblSoumission s in provider.RetunSoumission(tblAppelOffre.noAppelOffre))
                        {
                            s.dateSupprime = DateTime.Now;
                            string filename = "E:\\inetpub\\wwwroot\\Projet2016\\Equipe2/Soumission_alle\\soumission_" + CleanFileName(tblAppelOffre.nom) + "_" + CleanFileName(s.tblAgencePublicite.nom) + ".xml";
                            provider.UpdateSoumission(s);
                            DeleteXml(filename);
                        }
                    }
                    tblAppelOffre.noStatut   = provider.ReturnNoStatut("En Création");
                    tblAppelOffre.dateEnvoi  = AffecterTemps(tblAppelOffre.dateEnvoi, "heureEnvoi", "minEnvoi", "secondeEnvoi");
                    tblAppelOffre.dateRequis = AffecterTemps(tblAppelOffre.dateRequis, "heureRequise", "minRequise", "secondeRequise");
                    provider.UpdateAppelOffre(tblAppelOffre);
                    return(RedirectToAction("Index"));
                }
                //si l'Appel d'offre n'est pas en création il tombe à envoyé.
                tblAppelOffre.noStatut   = provider.ReturnNoStatut("Envoyé");
                tblAppelOffre.dateEnvoi  = AffecterTemps(tblAppelOffre.dateEnvoi, "heureEnvoi", "minEnvoi", "secondeEnvoi");
                tblAppelOffre.dateRequis = AffecterTemps(tblAppelOffre.dateRequis, "heureRequise", "minRequise", "secondeRequise");
                provider.UpdateAppelOffre(tblAppelOffre);

                if (Request.Form.AllKeys.Contains("noAgencePub"))
                {
                    int[] NoAgence = Request.Form.GetValues("noAgencePub").Select(no => int.Parse(no)).ToArray();
                    //On supprime les soumissions qui ne sont plus ratachées à l'appel d'offre.
                    deleteSoumission(NoAgence, tblAppelOffre);
                    //On créer les soumissions réliées à l'appel d'offre.
                    foreach (int no in NoAgence)
                    {
                        tblSoumission soumi = CreateSoumission(no, tblAppelOffre.noAppelOffre);
                        CreateSoumissionXml(soumi, tblAppelOffre);
                    }
                }

                provider.Save();
                return(RedirectToAction("Index"));
            }
            ViewBag.noEvenement = new SelectList(provider.ToutEvenement(), "noEvenement", "nom", tblAppelOffre.noEvenement);
            ViewBag.noStatut    = new SelectList(provider.ToutStatutAppel(), "noStatut", "nom", tblAppelOffre.noStatut);
            ViewBag.noMedia     = new SelectList(provider.ToutMedia(), "noMedia", "nom", tblAppelOffre.noMedia);
            ViewBag.noAgencePub = new SelectList(provider.ToutAgencePublicite(), "noAgencePub", "nom");
            return(View(tblAppelOffre));
        }
 public void UpdateAppelOffre(tblAppelOffre appel)
 {
     try
     {
         db.Entry(db.tblAppelOffre.Find(appel.noAppelOffre)).CurrentValues.SetValues(appel);
         db.SaveChanges();
     }
     catch (Exception e)
     {
         LayoutController.erreur = e;
     }
 }
 public tblMedia ReturnMediaAppel(tblAppelOffre appel)
 {
     try
     {
         return((from q in db.tblMedia
                 where q.noMedia == appel.noMedia
                 select q).FirstOrDefault());
     }
     catch (Exception e)
     {
         LayoutController.erreur = e;
     }
     return(new tblMedia());
 }
 public tblEvenement ReturnEvenAppel(tblAppelOffre appel)
 {
     try
     {
         return((from q in db.tblEvenement
                 where q.noEvenement == appel.noEvenement
                 select q).FirstOrDefault());
     }
     catch (Exception e)
     {
         LayoutController.erreur = e;
     }
     return(new tblEvenement());
 }
 public tblStatutAppelOffre ReturnStatAppel(tblAppelOffre appel)
 {
     try
     {
         return((from q in db.tblStatutAppelOffre
                 where q.noStatut == appel.noStatut
                 select q).FirstOrDefault());
     }
     catch (Exception e)
     {
         LayoutController.erreur = e;
     }
     return(new tblStatutAppelOffre());
 }
        //--Gestion de la création du xml d'une soumision.-----
        public XmlNode CrerUneSoumissionXml(XmlDocument doc, tblSoumission soumi, tblAppelOffre appelOffre)
        {
            double  prix       = 0.00;
            XmlNode xmlnoSoumi = doc.CreateNode(XmlNodeType.Element, "NoSoumission", "");

            xmlnoSoumi.InnerText = soumi.noSoumission.ToString();
            XmlNode xmlNom = doc.CreateNode(XmlNodeType.Element, "Nom", "");

            xmlNom.InnerText = appelOffre.nom;
            XmlNode xmlNoSoumiAgence = doc.CreateNode(XmlNodeType.Element, "noSoumissionAgence", "");

            xmlNoSoumiAgence.InnerText = soumi.noSoumissionAgence;
            XmlNode xmlPrix = doc.CreateNode(XmlNodeType.Element, "Prix", "");

            if (soumi.prix == null)
            {
                xmlPrix.InnerText = prix.ToString();
            }
            else
            {
                xmlPrix.InnerText = soumi.prix.ToString();
            }

            XmlNode xmlnoAgencePub = doc.CreateNode(XmlNodeType.Element, "noAgencePub", "");

            xmlnoAgencePub.InnerText = soumi.noAgencePub.ToString();
            XmlNode xmlnoAppelOffre = doc.CreateNode(XmlNodeType.Element, "noAppelOffre", "");

            xmlnoAppelOffre.InnerText = soumi.noAppelOffre.ToString();
            XmlNode xmlStatut = doc.CreateNode(XmlNodeType.Element, "Statut", "");

            xmlStatut.InnerText = soumi.statut.ToString();
            XmlNode xmlCommentaire = doc.CreateNode(XmlNodeType.Element, "Commentaire", "");

            xmlCommentaire.InnerText = soumi.commentaire;
            XmlNode xmlSoumission = doc.CreateNode(XmlNodeType.Element, "Soumission", "");

            //On ajoute une soumision.
            xmlSoumission.AppendChild(xmlnoSoumi);
            xmlSoumission.AppendChild(xmlNoSoumiAgence);
            xmlSoumission.AppendChild(xmlNom);
            xmlSoumission.AppendChild(xmlPrix);
            xmlSoumission.AppendChild(xmlnoAgencePub);
            xmlSoumission.AppendChild(xmlnoAppelOffre);
            xmlSoumission.AppendChild(xmlStatut);
            xmlSoumission.AppendChild(xmlCommentaire);

            return(xmlSoumission);
        }
        private void deleteSoumission(int[] NoAgence, tblAppelOffre appel)
        {
            List <tblSoumission> listSoumi = provider.RetunSoumission(appel.noAppelOffre);

            foreach (tblSoumission s in listSoumi)
            {
                if (!NoAgence.Contains(s.noAgencePub))
                {
                    provider.SupprimerSoumission(s);
                    string filename = "E:\\inetpub\\wwwroot\\Projet2016\\Equipe2/Soumission_alle\\soumission_" + CleanFileName(appel.nom) + "_" + CleanFileName(s.tblAgencePublicite.nom) + ".xml";
                    provider.UpdateSoumission(s);
                    DeleteXml(filename);
                }
            }
        }
        public ActionResult Create([Bind(Include = "noAppelOffre,nom,dateRequis,dateEnvoi,description,dateSupprime,noEvenement,noMedia")] tblAppelOffre tblAppelOffre)
        {
            List <int> idSelect = new List <int>();

            string[] NoAgence = Request.Form.GetValues("noAgencePub");
            ViewBag.noAgencePub = new MultiSelectList(provider.ToutAgencePublicite(), "noAgencePub", "nom", idSelect);

            if (ModelState.IsValid)
            {
                // var statut = provider.ReturnStatAppel(tblAppelOffre);
                var evenement = provider.ReturnEvenAppel(tblAppelOffre);
                var media     = provider.ReturnMediaAppel(tblAppelOffre);

                provider.AjoutAppelOffre(tblAppelOffre);
                if (Request.Form.Get("save") == "Save")
                {
                    tblAppelOffre.noStatut   = provider.ReturnNoStatut("En Création");
                    tblAppelOffre.dateEnvoi  = AffecterTemps(tblAppelOffre.dateEnvoi, "heureEnvoi", "minEnvoi", "secondeEnvoi");
                    tblAppelOffre.dateRequis = AffecterTemps(tblAppelOffre.dateRequis, "heureRequise", "minRequise", "secondeRequise");
                    provider.Save();
                    return(RedirectToAction("Index"));
                }
                //si l'Appel d'offre n'est pas en création il tombe à envoyé.
                tblAppelOffre.noStatut   = provider.ReturnNoStatut("Envoyé");
                tblAppelOffre.dateEnvoi  = AffecterTemps(tblAppelOffre.dateEnvoi, "heureEnvoi", "minEnvoi", "secondeEnvoi");
                tblAppelOffre.dateRequis = AffecterTemps(tblAppelOffre.dateRequis, "heureRequise", "minRequise", "secondeRequise");
                provider.Save();

                //On créer les soumissions réliées à l'appel d'offre.
                foreach (string no in NoAgence)
                {
                    tblSoumission souimi = CreateSoumission(int.Parse(no), tblAppelOffre.noAppelOffre);
                    CreateSoumissionXml(souimi, tblAppelOffre);
                }
                // conn.Close(); //On ferme la connection.
                return(RedirectToAction("Index"));
            }

            ViewBag.noEvenement             = new SelectList(provider.ToutEvenement(), "noEvenement", "nom", tblAppelOffre.noEvenement);
            ViewBag.noStatut                = new SelectList(provider.ToutStatutAppel(), "noStatut", "nom", tblAppelOffre.noStatut);
            ViewBag.noMedia                 = new SelectList(provider.ToutMedia(), "noMedia", "nom", tblAppelOffre.noMedia);
            ViewBag.noAgencePub             = new MultiSelectList(provider.ToutAgencePublicite(), "noAgencePub", "nom");
            LayoutController.pagePermission = PermissionNames.CreerAppelOffre;
            return(View(tblAppelOffre));
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ViewBag.AllAgence      = provider.ToutAgencePublicite();
            ViewBag.AgenceParAppel = provider.ReturnAgence(id);
            tblAppelOffre tblAppelOffre = provider.returnAppel(id);

            if (tblAppelOffre == null)
            {
                return(HttpNotFound());
            }
            ViewBag.noEvenement             = new SelectList(provider.ToutEvenement(), "noEvenement", "nom", tblAppelOffre.noEvenement);
            ViewBag.noStatut                = new SelectList(provider.ToutStatutAppel(), "noStatut", "nom", tblAppelOffre.noStatut);
            ViewBag.noMedia                 = new SelectList(provider.ToutMedia(), "noMedia", "nom", tblAppelOffre.noMedia);
            LayoutController.pagePermission = PermissionNames.CreerAppelOffre;
            return(View(tblAppelOffre));
        }
        // GET: AppellOffre/Details/5
        public ActionResult Details(int?id)
        {
            //On retourne les soumissions associées à l'appel d'offre
            ViewBag.soumission = provider.RetunSoumission(id);
            //On retourne les agences de publicités associées à l'appel d'offre
            ViewBag.agencePub = provider.ReturnAgence(id);
            //ViewBag.Media = provider.RetunrMedia();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tblAppelOffre tblAppelOffre = provider.returnAppel(id);

            if (tblAppelOffre == null)
            {
                return(HttpNotFound());
            }
            return(View(tblAppelOffre));
        }
        private void CreateSoumissionXml(tblSoumission soumi, tblAppelOffre appelOffre)
        {
            CptSoumi++;
            DirectoryInfo dr       = null;
            XmlDocument   doc      = new XmlDocument();
            XmlNode       Racine   = doc.CreateNode(XmlNodeType.Element, "SoumissionAgence", "http://tempuri.org/SoumissionAgence.xsd");
            string        pathAlle = "E:\\inetpub\\wwwroot\\Projet2016\\Equipe2\\Soumission_alle";
            string        pathXml  = "";

            dr = CreateDirectory(pathAlle);
            doc.AppendChild(Racine);
            Racine.AppendChild(CrerUneSoumissionXml(doc, soumi, appelOffre));
            try
            {
                if (dr != null)
                {
                    pathAlle = dr.FullName;
                }
                pathXml = pathAlle + "/soumission_" + CleanFileName(appelOffre.nom) + "_" + CleanFileName(provider.ReturnAgenceParSoumi(soumi).nom) + ".xml";
                doc.Save(pathXml);
                string pathXsd = "//deptinfo420/P2016_Equipe2/App_Data/SoumissionAgence.xsd";
                validerXML(pathXml, doc, pathXsd);
            }
            catch (UnauthorizedAccessException UAEx)
            {
                ViewBag.Autorisation = UAEx.Message;
            }
            catch (PathTooLongException PathEx)
            {
                ViewBag.PathLong = PathEx.Message;
            }
            catch (IOException IOEx)
            {
                ViewBag.IO = IOEx.Message;
                LayoutController.erreur = IOEx;
            }
        }