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); } }
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); }
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; } }