Пример #1
0
        public ActionResult Accepter(int?id)
        {
            tblAppelOffre appelOffre = provider.SelectAppelParSoumi(id);

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tblSoumission soumi = provider.ReturnUneSoumi(id);

            if (soumi == null)
            {
                return(HttpNotFound());
            }

            soumi.statut        = 1;
            appelOffre.noStatut = provider.ReturnStatut("Complété").noStatut;

            //Les autres soumissions tombent à réfuseés
            foreach (tblSoumission s in provider.RetunSoumission(appelOffre.noAppelOffre))
            {
                if (s.noSoumission != id)
                {
                    s.statut = 0;
                }
            }
            provider.Save();

            return(RedirectToAction("Details/" + appelOffre.noAppelOffre, "AppellOffre"));
        }
        private tblSoumission CreateSoumission(int noAgenP, int noApp)
        {
            //if (!PermissionChecker.IsGrantedAsync("CreerSoumission").Result)
            //{
            //    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            //}
            tblSoumission soumi = provider.SleclectSoumi(noApp, noAgenP);

            if (soumi != null)//update soumission
            {
                try
                {
                    soumi.noAgencePub  = noAgenP;
                    soumi.noAppelOffre = noApp;
                    soumi.statut       = null;
                    provider.Save();
                }
                catch (Exception e)
                {
                    LayoutController.erreur = e;
                }
                return(soumi);
            }
            else
            {
                var soumission = new tblSoumission {
                    noAgencePub = noAgenP, noAppelOffre = noApp, statut = null
                };
                provider.InsertSoumission(soumission);
                return(soumission);
            }
        }
Пример #3
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 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 UpdateSoumission(tblSoumission soumi)
 {
     try
     {
         db.Entry(db.tblSoumission.Find(soumi.noSoumission)).CurrentValues.SetValues(soumi);
         db.SaveChanges();
     }
     catch (Exception e)
     {
         LayoutController.erreur = e;
     }
 }
 public void InsertSoumission(tblSoumission soumi)
 {
     try
     {
         db.tblSoumission.Add(soumi);
         db.SaveChanges();
     }
     catch (Exception e)
     {
         LayoutController.erreur = e;
     }
 }
 internal void SupprimerSoumission(tblSoumission s)
 {
     try
     {
         s.dateSupprime    = DateTime.Now;
         db.Entry(s).State = EntityState.Modified;
         db.SaveChanges();
     }
     catch (Exception e)
     {
         LayoutController.erreur = e;
     }
 }
 public tblAgencePublicite ReturnAgenceParSoumi(tblSoumission soumi)
 {
     try
     {
         return((from q in db.tblAgencePublicite
                 where q.noAgencePub == soumi.noAgencePub
                 select q).FirstOrDefault());
     }
     catch (Exception e)
     {
         LayoutController.erreur = e;
     }
     return(new tblAgencePublicite());
 }
        //--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);
        }
Пример #10
0
        public ActionResult Detail(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tblSoumission soumission = provider.ReturnUneSoumi(id);

            if (soumission == null)
            {
                return(HttpNotFound());
            }
            LayoutController.pagePermission = PermissionNames.ConsulterSoumission;
            return(View(soumission));
        }
        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));
        }
        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;
            }
        }
        private void RetournerSoumissionXml()
        {
            XmlDocument   doc         = new XmlDocument();
            DirectoryInfo dr          = null;
            string        pathXsd     = "E:\\inetpub\\wwwroot\\Projet2016\\Equipe2\\SoumissionAgence.xsd";
            string        pathRetour  = "E:\\inetpub\\wwwroot\\Projet2016\\Equipe2\\Soumission_retour";
            string        pathArchive = "E:\\inetpub\\wwwroot\\Projet2016\\Equipe2\\Soumission_archive";

            dr = CreateDirectory(pathRetour);
            CreateXsd(pathXsd, doc);
            //On prcoure tous les xmls contenus dans le dossier
            try
            {
                if (dr != null)
                {
                    pathRetour = dr.FullName;
                }
                var files = from file in Directory.EnumerateFiles(pathRetour, "*.xml", SearchOption.AllDirectories)
                            select new
                {
                    file
                };

                foreach (var f in files)
                {
                    doc.Load(f.file);
                    XmlNode       racine     = doc.FirstChild;
                    XmlNode       soumission = racine.SelectSingleNode("Soumission");
                    tblSoumission soumi      = provider.ReturnUneSoumi(Convert.ToInt32(soumission["NoSoumission"].InnerText));
                    if (!validerXML(f.file, doc, pathXsd))
                    {
                        return;
                    }
                    if (soumi != null)
                    {
                        soumi.noSoumissionAgence = soumission["noSoumissionAgence"].InnerText;
                        soumi.prix = Convert.ToDecimal(soumission["Prix"].InnerText, CultureInfo.InvariantCulture);
                        //soumi.noAgencePub = Convert.ToInt32(soumission["noAgencePub"].InnerText);
                        //soumi.noAppelOffre = Convert.ToInt32(soumission["noAppelOffre"].InnerText);
                        //soumi.statut = Convert.ToByte(soumission["Statut"].InnerText);
                        soumi.commentaire = soumission["Commentaire"].InnerText;
                        provider.Save();
                    }

                    //lorsque que la soumission à été validée par l'agence de publicité on l'archive
                    if (soumission["noSoumissionAgence"].InnerText == "" || soumission["Commentaire"].InnerText == "")
                    {
                        try
                        {
                            StreamWriter fileLog = new StreamWriter("E:\\inetpub\\wwwroot\\Projet2016\\Equipe2\\logErreur.txt", true);
                            fileLog.WriteLine("Le numéro de soumission et commentaire de l'agence de publicité doit être précisé pour pouvoir archiver le XML.");
                            doc.Save(fileLog);
                            fileLog.Close();
                        }
                        catch (IOException IOEx)
                        {
                            ViewBag.IO = IOEx.Message;
                            LayoutController.erreur = IOEx;
                        }
                    }
                    else
                    {
                        ArchiverXML(doc, f.file, pathArchive);
                    }
                }
            }
            catch (UnauthorizedAccessException UAEx)
            {
                ViewBag.Autorisation = UAEx.Message;
            }
            catch (PathTooLongException PathEx)
            {
                ViewBag.PathLong = PathEx.Message;
            }
            catch (IOException IOEx)
            {
                ViewBag.IO = IOEx.Message;
                LayoutController.erreur = IOEx;
            }
        }