19-05-2015, 05:07 PM
Je vais reprendre
J'ai des tuyauteries, qu'on appelle des lignes ("Line"). Chacune possède un code unique ("LineBq").
On dispose d'un dossier que l'on veut uploader dans le logiciel. Dans ce dossier se trouvent des fichiers:
• Des documents PDF
• Des documents DXF, DWG
• D'autres documents inutiles
Les PDF doivent respecter une structure de nom: "LineBq_yyyy-mm-dd_Rev_Nom.pdf" (c'était dans le 1er post), où LineBq indique le numéro de la ligne à laquelle le PDF doit être rattaché, yyy-mm-dd est la date de création de ce PDF (note: le PDF est le plan de la tuyauterie), Rev est un "numéro" alphabétique de révision (A, B, C...Z, AA,...) et Nom, un nom quelconque.
Les DXF/DWG respectent un schéma similaire: LineBq_Nom.dxf/LineBq_Nom.dwg (pas de rev ni de date).
On souhaite n'uploader que les PDF et les DXF/DWG. Les autres documents (inutiles), sont ignorés (et on les liste dans un message d'erreur).
Pour une ligne, on ne peut uploader un DXF/DWG que si un (et un seul) PDF est uploadé en même temps, pour cette ligne.
Pour une ligne, on ne peut uploader qu'un et un seul PDF.
Du coup, j'étais partis sur quelque chose comme:
J'ai des tuyauteries, qu'on appelle des lignes ("Line"). Chacune possède un code unique ("LineBq").
On dispose d'un dossier que l'on veut uploader dans le logiciel. Dans ce dossier se trouvent des fichiers:
• Des documents PDF
• Des documents DXF, DWG
• D'autres documents inutiles
Les PDF doivent respecter une structure de nom: "LineBq_yyyy-mm-dd_Rev_Nom.pdf" (c'était dans le 1er post), où LineBq indique le numéro de la ligne à laquelle le PDF doit être rattaché, yyy-mm-dd est la date de création de ce PDF (note: le PDF est le plan de la tuyauterie), Rev est un "numéro" alphabétique de révision (A, B, C...Z, AA,...) et Nom, un nom quelconque.
Les DXF/DWG respectent un schéma similaire: LineBq_Nom.dxf/LineBq_Nom.dwg (pas de rev ni de date).
On souhaite n'uploader que les PDF et les DXF/DWG. Les autres documents (inutiles), sont ignorés (et on les liste dans un message d'erreur).
Pour une ligne, on ne peut uploader un DXF/DWG que si un (et un seul) PDF est uploadé en même temps, pour cette ligne.
Pour une ligne, on ne peut uploader qu'un et un seul PDF.
Du coup, j'étais partis sur quelque chose comme:
Class FolderUploader {
FileUploader[] fups = {PDFUploader, DXFUploader, DWGUploader, OtherUploader};
{File, LineBq}[] uploadables; // File & lineBq
{File, String}[] faileds; // File & raison de l'échec
upload(Folder fold)
foreach (File f in fold) {
foreach (FileUploader fu in fups) {
fu->upload(f, uploadables, faileds);
}
}
}
}
Class PDFUploader {
upload(File f, {File, LineBq}[] oks, {File, String}[] fails) {
}
}
Class DXFUploader {
upload(File f, {File, LineBq}[] oks, {File, String}[] fails) {
}
}
Class DWGUploader {
// Similaire à DXFUploader
}
Class OtherUploader {
upload(File f, {File, LineBq}[] oks, {File, String}[] fails) {
}
}