__RgpdFileManager.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using sage.ew.interficies;
6 using System.Windows.Forms;
7 using System.IO;
8 using sage.ew.db;
9 
10 namespace sage.addons.rgpd.Negocio
11 {
12  //10/04/2018 Esta clase deja de tener sentido ya que la gestión documental asume el trabajo con ficheros.
13 
17  //internal class RgpdFileManager : IRgpdGestdocOperationProvider
18  //{
19  // //Operaciones vinculadas con la gestión documental
20  // //1.Envío de solicitud de consentimiento
21  // //2.Recepción de consentimiento
22  // //3.Recepción solicitud supresión
23  // //4.Recepción solicitud solicitud portabilidad
24  // //5.Generación de datos de Portabilidad
25  // internal const string SOLICITUD_CONSENTIMIENTO = "_1";
26  // internal const string RECEPCION_CONSENTIMIENTO = "_2";
27  // internal const string SOLICITUD_SUPRESION = "_3";
28  // internal const string SOLICITUD_PORTABILIDAD = "_4";
29  // internal const string DATOS_PORTABILIDAD = "_5";
30 
31  // //Variables correspondientes al elemento que se esta tratando
32  // IRgpdInstanciaEntidad _oInstanciaActual = null;
33  // string _cFicheroOrigen = String.Empty;
34  // string _cFicheroDestino = String.Empty;
35  // string _cSufijoParaFichero = string.Empty;
36 
37  // /// <summary>
38  // /// Obtiene un formulario para realizar operaciones
39  // /// </summary>
40  // internal OpenFileDialog _Formulario
41  // {
42  // get
43  // {
44  // if (_oFormulario == null)
45  // obtenerFormularioConfigurado();
46  // return _oFormulario;
47  // }
48  // set { _oFormulario = value; }
49  // }
50  // private OpenFileDialog _oFormulario = null;
51 
52  // /// <summary>
53  // /// Directorio base para documentos
54  // /// </summary>
55  // internal string _DirectorioBase
56  // {
57  // get { return RgpdConfig._RutaDocumentos; }
58  // }
59 
60  // /// <summary>
61  // /// Constructor
62  // /// </summary>
63  // public RgpdFileManager()
64  // {
65 
66  // }
67 
68  // #region Métodos públicos
69 
70  // /// <summary>
71  // /// Ver el fichero de datos de portabilidad
72  // /// </summary>
73  // /// <param name="sender">Orígen de la invocación del método</param>
74  // /// <param name="tnIdFichero">Identificador del fichero</param>
75  // public void RgpdShowFile_DatosPortabilidad(object sender, int tnIdFichero)
76  // {
77  // //Asigno el sufijo asociado al tipo de fichero
78  // _cSufijoParaFichero = DATOS_PORTABILIDAD;
79 
80  // procesoVisionadoFichero(sender);
81  // }
82 
83  // /// <summary>
84  // /// Ver el fichero de consentimiento
85  // /// </summary>
86  // /// <param name="sender">Orígen de la invocación del método</param>
87  // /// <param name="tnIdFichero">Identificador del fichero</param>
88  // public void RgpdShowFile_RecepcionConsentimiento(object sender, int tnIdFichero)
89  // {
90  // //Asigno el sufijo asociado al tipo de fichero
91  // _cSufijoParaFichero = RECEPCION_CONSENTIMIENTO;
92 
93  // procesoVisionadoFichero(sender);
94  // }
95 
96  // /// <summary>
97  // /// Ver el fichero de solicitud de consentimiento
98  // /// </summary>
99  // /// <param name="sender">Orígen de la invocación del método</param>
100  // /// <param name="tnIdFichero">Identificador del fichero</param>
101  // public void RgpdShowFile_SolicitudConsentimiento(object sender, int tnIdFichero)
102  // {
103  // //Asigno el sufijo asociado al tipo de fichero
104  // _cSufijoParaFichero = SOLICITUD_CONSENTIMIENTO;
105 
106  // procesoVisionadoFichero(sender);
107  // }
108 
109  // /// <summary>
110  // /// Ver el fichero de solicitud de portabilidad
111  // /// </summary>
112  // /// <param name="sender">Orígen de la invocación del método</param>
113  // /// <param name="tnIdFichero">Identificador del fichero</param>
114  // public void RgpdShowFile_SolicitudPortabilidad(object sender, int tnIdFichero)
115  // {
116  // //Asigno el sufijo asociado al tipo de fichero
117  // _cSufijoParaFichero = SOLICITUD_PORTABILIDAD;
118 
119  // procesoVisionadoFichero(sender);
120  // }
121 
122  // /// <summary>
123  // /// Ver el fichero de solicitud de supresión
124  // /// </summary>
125  // /// <param name="sender">Orígen de la invocación del método</param>
126  // /// <param name="tnIdFichero">Identificador del fichero</param>
127  // public void RgpdShowFile_SolicitudSupresion(object sender, int tnIdFichero)
128  // {
129  // //Asigno el sufijo asociado al tipo de fichero
130  // _cSufijoParaFichero = SOLICITUD_SUPRESION;
131 
132  // procesoVisionadoFichero(sender);
133  // }
134 
135  // /// <summary>
136  // /// Subir el fichero de datos de portabilidad
137  // /// </summary>
138  // /// <param name="sender">Orígen de la invocación del método</param>
139  // /// <param name="toInfoFichero">Informacion del fichero</param>
140  // /// <returns>Id del fichero</returns>
141  // public int RgpdUploadFile_DatosPortabilidad(object sender, IRgpdFileInfo toInfoFichero)
142  // {
143  // //Asigno el sufijo asociado al tipo de fichero
144  // _cSufijoParaFichero = DATOS_PORTABILIDAD;
145 
146  // return procesoUploadFichero(sender, toInfoFichero._Ruta, toInfoFichero._IdFichero);
147  // }
148 
149  // /// <summary>
150  // /// Subir el fichero de consentimiento
151  // /// </summary>
152  // /// <param name="sender">Orígen de la invocación del método</param>
153  // /// <param name="toInfoFichero">Informacion del fichero</param>
154  // /// <returns>Id del fichero</returns>
155  // public int RgpdUploadFile_RecepcionConsentimiento(object sender, IRgpdFileInfo toInfoFichero)
156  // {
157  // //Asigno el sufijo asociado al tipo de fichero
158  // _cSufijoParaFichero = RECEPCION_CONSENTIMIENTO;
159 
160  // return procesoUploadFichero(sender, toInfoFichero._Ruta, toInfoFichero._IdFichero);
161  // }
162 
163  // /// <summary>
164  // /// Subir el fichero de solicitud de consentimiento
165  // /// </summary>
166  // /// <param name="sender">Orígen de la invocación del método</param>
167  // /// <param name="toInfoFichero">Informacion del fichero</param>
168  // /// <returns>Id del fichero</returns>
169  // public int RgpdUploadFile_SolicitudConsentimiento(object sender, IRgpdFileInfo toInfoFichero)
170  // {
171  // //Asigno el sufijo asociado al tipo de fichero
172  // _cSufijoParaFichero = SOLICITUD_CONSENTIMIENTO;
173 
174  // return procesoUploadFichero(sender, toInfoFichero._Ruta, toInfoFichero._IdFichero);
175  // }
176 
177  // /// <summary>
178  // /// Subir el fichero de datos de portabilidad
179  // /// </summary>
180  // /// <param name="sender">Orígen de la invocación del método</param>
181  // /// <param name="toInfoFichero">Informacion del fichero</param>
182  // /// <returns>Id del fichero</returns>
183  // public int RgpdUploadFile_SolicitudPortabilidad(object sender, IRgpdFileInfo toInfoFichero)
184  // {
185  // //Asigno el sufijo asociado al tipo de fichero
186  // _cSufijoParaFichero = SOLICITUD_PORTABILIDAD;
187 
188  // return procesoUploadFichero(sender, toInfoFichero._Ruta, toInfoFichero._IdFichero);
189  // }
190 
191  // /// <summary>
192  // /// Subir el fichero de solicitud de supresión
193  // /// </summary>
194  // /// <param name="sender">Orígen de la invocación del método</param>
195  // /// <param name="toInfoFichero">Informacion del fichero</param>
196  // /// <returns>Id del fichero</returns>
197  // public int RgpdUploadFile_SolicitudSupresion(object sender, IRgpdFileInfo toInfoFichero)
198  // {
199  // //Asigno el sufijo asociado al tipo de fichero
200  // _cSufijoParaFichero = SOLICITUD_SUPRESION;
201 
202  // return procesoUploadFichero(sender, toInfoFichero._Ruta, toInfoFichero._IdFichero);
203  // }
204 
205  // #endregion Métodos públicos
206 
207  // #region Métodos privados
208 
209  // /// <summary>
210  // /// Obtiene una instancia configurada del formulario OpenDialog
211  // /// </summary>
212  // private void obtenerFormularioConfigurado()
213  // {
214  // _oFormulario = new OpenFileDialog();
215  // if (Environment.OSVersion.Version.Major >= 6)
216  // {
217  // string path = Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName;
218  // path = Directory.GetParent(path).ToString();
219  // _oFormulario.InitialDirectory = path;
220  // }
221  // _oFormulario.Multiselect = false;
222  // _oFormulario.Title = "Seleccionar archivo";
223  // }
224 
225  // /// <summary>
226  // /// Método para visionar un fichero.
227  // /// Calcula la ruta, el nombre único y le pide al SO que abra el fichero.
228  // /// </summary>
229  // /// <param name="toSender"></param>
230  // private void procesoVisionadoFichero(object toSender)
231  // {
232  // _oInstanciaActual = toSender as IRgpdInstanciaEntidad;
233  // if(_oInstanciaActual == null)
234  // return;
235 
236  // try
237  // {
238  // string lcSafeName = obtenerNombreFicheroSinExtension(_oInstanciaActual, _cSufijoParaFichero);
239  // DirectoryInfo loDir = new DirectoryInfo(Path.Combine(_DirectorioBase, _oInstanciaActual._CodigoEntidad));
240  // foreach (var ficheroInstancia in loDir.GetFiles(lcSafeName + ".*"))
241  // {
242  // //No se que fichero es ni me importa. Que lo abra el SO si puede
243  // System.Diagnostics.Process.Start(ficheroInstancia.FullName);
244  // return; //El primero que encuentre me vale. Termino.
245  // }
246  // }
247  // catch (Exception loException)
248  // {
249  // DB.Registrar_Error(loException);
250  // }
251  // }
252 
253  // /// <summary>
254  // /// Limpia variables de trabajo
255  // /// </summary>
256  // private void limpiarVariablesTemporales()
257  // {
258  // _oInstanciaActual = null;
259  // _cFicheroOrigen = String.Empty;
260  // _cFicheroDestino = String.Empty;
261  // _cSufijoParaFichero = string.Empty;
262  // }
263 
264  // /// <summary>
265  // /// Proceso de subida de un fichero
266  // /// </summary>
267  // /// <param name="toSender"></param>
268  // /// <param name="tcFichero"></param>
269  // /// <param name="tnIdFichero">No se contempla usar versiones por lo que se ignora este parámetro</param>
270  // /// <returns></returns>
271  // private int procesoUploadFichero(object toSender, string tcFichero = "", int tnIdFichero = 0)
272  // {
273  // //tnIdFichero => No se contempla usar versiones por lo que se ignora este parámetro
274 
275  // _oInstanciaActual = toSender as IRgpdInstanciaEntidad;
276  // if (_oInstanciaActual == null)
277  // return -1;
278 
279  // bool llOk = true;
280  // int lnIdResultado = -1; //Id menor que 0 (falso)
281 
282  // if (string.IsNullOrWhiteSpace(tcFichero))
283  // llOk = seleccionarFichero();
284  // else
285  // llOk = validarFichero(tcFichero);
286 
287  // if (llOk)
288  // {
289  // if (copiarFichero())
290  // lnIdResultado = 1; //Id inventado mayor que 0
291  // }
292 
293  // limpiarVariablesTemporales();
294  // return lnIdResultado;
295  // }
296 
297  // private bool copiarFichero()
298  // {
299  // if (_oInstanciaActual != null)
300  // {
301  // string lcSafeName = obtenerNombreFicheroSinExtension(_oInstanciaActual, _cSufijoParaFichero);
302  // if (limpiarDestino(lcSafeName))
303  // {
304  // string lcExtensionOrigen = Path.GetExtension(_cFicheroOrigen);
305  // _cFicheroDestino = obtenerRutaAbsolutaFicheroDestino(_oInstanciaActual, _cSufijoParaFichero, lcExtensionOrigen);
306  // try
307  // {
308  // File.Copy(_cFicheroOrigen, _cFicheroDestino);
309  // }
310  // catch (Exception loException)
311  // {
312  // DB.Registrar_Error(loException);
313  // }
314  // return true;
315  // }
316  // }
317  // return false;
318  // }
319 
320  // private bool limpiarDestino(string lcSafeName)
321  // {
322  // try
323  // {
324  // string lcDirectorioDestino = Path.Combine(_DirectorioBase, _oInstanciaActual._CodigoEntidad);
325  // garantizarDirectorio(lcDirectorioDestino);
326  // DirectoryInfo loDir = new DirectoryInfo(lcDirectorioDestino);
327  // foreach (var oldFile in loDir.GetFiles(lcSafeName + ".*"))
328  // {
329  // oldFile.Delete();
330  // }
331  // return true;
332  // }
333  // catch (Exception loException)
334  // {
335  // DB.Registrar_Error(loException);
336  // }
337  // return false;
338  // }
339 
340  // /// <summary>
341  // /// Valida el fichero recibido por parámetro
342  // /// </summary>
343  // /// <param name="tcFichero"></param>
344  // /// <returns></returns>
345  // private bool validarFichero(string tcFichero)
346  // {
347  // bool fileOk = false;
348  // try
349  // {
350  // fileOk = File.Exists(tcFichero);
351  // _cFicheroOrigen = tcFichero; //Asigno como fichero actual (a tratar)
352  // }
353  // catch (Exception loException)
354  // {
355  // DB.Registrar_Error(loException);
356  // }
357  // return fileOk;
358  // }
359 
360 
361  // private bool seleccionarFichero()
362  // {
363  // if (_Formulario.ShowDialog() == DialogResult.OK)
364  // {
365  // _cFicheroOrigen = _Formulario.FileName; //Asigno como fichero actual (a tratar)
366  // return true;
367  // }
368  // else
369  // return false;
370  // }
371 
372  // /// <summary>
373  // /// Obtiene la ruta al directorio base
374  // /// </summary>
375  // /// <param name="tcNombreDirectorio"></param>
376  // /// <returns></returns>
377  // private void garantizarDirectorio(string tcNombreDirectorio)
378  // {
379  // if (!Directory.Exists(tcNombreDirectorio))
380  // {
381  // Directory.CreateDirectory(tcNombreDirectorio);
382  // }
383  // }
384 
385  // /// <summary>
386  // /// Genera el nombre que tendrá el fichero en base a la ENTIDAD + INSTANCIA + SUFIJO sin extensión.
387  // /// </summary>
388  // /// <param name="toOrigen"></param>
389  // /// <param name="tcSufijo"></param>
390  // /// <returns></returns>
391  // private string obtenerNombreFicheroSinExtension(IRgpdInstanciaEntidad toOrigen, string tcSufijo)
392  // {
393  // string lcNombreFichero = String.Join("_", new List<string>() { toOrigen._CodigoEntidad, toOrigen._CodigoInstancia, tcSufijo });
394  // return lcNombreFichero;
395  // }
396 
397  // /// <summary>
398  // ///
399  // /// </summary>
400  // /// <param name="toOrigen"></param>
401  // /// <param name="tcSufijo"></param>
402  // /// <param name="tcExtension"></param>
403  // /// <returns></returns>
404  // private string obtenerRutaAbsolutaFicheroDestino(IRgpdInstanciaEntidad toOrigen, string tcSufijo, string tcExtension)
405  // {
406  // string lcNombreFicheroSinExtension = obtenerNombreFicheroSinExtension(toOrigen, tcSufijo);
407  // string lcRutaAbsolutaFichero = Path.Combine(_DirectorioBase, toOrigen._CodigoEntidad, lcNombreFicheroSinExtension);
408  // if (!String.IsNullOrWhiteSpace(tcExtension))
409  // {
410  // if (tcExtension.StartsWith("."))
411  // lcRutaAbsolutaFichero += tcExtension;
412  // else
413  // lcNombreFicheroSinExtension += "." + tcExtension;
414  // }
415  // return lcRutaAbsolutaFichero;
416  // }
417 
418  // #endregion Métodos privados
419  //}
420 }
Clase base para el módulo rgpd
Definition: SageAddons.cs:51