public ActionResult Modifier(DocFormViewModel vm) { if (ModelState.IsValid) { _dal.ModifierDocument(vm.Doc.Id, vm.DocCode, vm.Doc.Titre, vm.SelectedTypeString); _dal.AjouterDocumentAReferentiel(vm.Doc.Id, vm.SelectedReferentielId); _dal.AjouterDocumentASecteur(vm.Doc.Id, vm.SelectedSecteurId); return(RedirectToAction("Index", "Principal")); } return(View(vm)); }
public ActionResult Modifier(int id) { Document docAmodifier = _dal.ObtenirDocumentParId(id); DocFormViewModel vm = new DocFormViewModel() { Doc = docAmodifier, DocCode = docAmodifier.Code, Referentiels = _dal.ObtientTousLesReferentiels(), SelectedReferentielId = docAmodifier.IdRef, SelectedTypeString = docAmodifier.Type, Secteurs = _dal.ObtientTousLesSecteurs(), SelectedSecteurId = docAmodifier.IdSec }; return(View(vm)); }
/******************************************** * * Méthodes de création, d'ajout dans la base * ********************************************/ /// <summary> /// Instantie un nouveau modèle Document avec un /// nom donné, puis ajoute le document à la /// base de données avec le référentiel par défaut "Indéfini", le secteur "Aucun" et sans type. /// On commence par analyser les documents dont l'extension est .pdf, /// puis on vérifie pour chaque fichier s'il n'existe pas. /// S'il n'existe pas alors on va déterminer ses propriétés selon son nom. /// On analyse la chaîne de caractères du nom du fichier pour /// déterminer son type, son titre, son référentiel, son secteur et son code éventuel. /// </summary> /// <param name="fichier">Nom du fichier (avec extension) à créer si inexistant</param> private void CreerDocument(string fichier) { if (fichier.Split('.')[fichier.Split('.').Length - 1].Equals("pdf")) { string code = "", type = DocFormViewModel.GetEnumDescription(DocFormViewModel.Types.Indéfini); var referentiel = Bdd.Referentiels.Find(1); var secteur = Bdd.Secteurs.Find(1); if (!DocumentExisteBdd(fichier)) { // on ignore l'extension du fichier var nomFichier = ""; for (var i = 0; i < fichier.Split('.').Length - 1; i++) { nomFichier += fichier.Split('.')[i]; } // on distingue les mots séparés par un espace var strFichier = nomFichier.Split(' '); // un fichier avec un code commence par "F00" string titre; if (strFichier[0].Contains("FR05")) { // le type du document correspond au deuxième mot switch (strFichier[1]) { case "BP": type = DocFormViewModel.GetEnumDescription(DocFormViewModel.Types.BP); break; case "DF": type = DocFormViewModel.GetEnumDescription(DocFormViewModel.Types.DF); break; case "DO": type = DocFormViewModel.GetEnumDescription(DocFormViewModel.Types.DO); break; case "EN": type = DocFormViewModel.GetEnumDescription(DocFormViewModel.Types.EN); break; case "IT": case "GR": type = DocFormViewModel.GetEnumDescription(DocFormViewModel.Types.IT); break; case "PR": type = DocFormViewModel.GetEnumDescription(DocFormViewModel.Types.PR); break; case "MO": type = DocFormViewModel.GetEnumDescription(DocFormViewModel.Types.MO); break; case "CS": type = DocFormViewModel.GetEnumDescription(DocFormViewModel.Types.CS); break; case "SP": type = DocFormViewModel.GetEnumDescription(DocFormViewModel.Types.SP); break; default: type = DocFormViewModel.Types.Indéfini.ToString(); break; } // le code contiend les trois premiers mots code = strFichier[0] + " " + strFichier[1] + " " + strFichier[2]; // si le titre du fichier existe dans la liste préexistante alors on l'ajoute titre = ObtenirTitreAvecCode(code); // si le nom du fichier a plus de 3 mots, alors il a un titre if (titre == null && strFichier.Length > 3) { // pour chaque mot supplémentaire, on l'ajoute au titre for (var i = 3; i < strFichier.Length; i++) { titre += strFichier[i] + " "; } } } // si le nom du fichier n'est pas un code, alors il devient le titre du document else { titre = nomFichier; } var doc = new Document { Code = code, Type = type, Titre = titre, NomFichier = fichier, Referentiel = referentiel, Secteur = secteur }; Bdd.Documents.Add(doc); Bdd.SaveChanges(); } } }