public bool GeneratePDF()
        {
            Guid idLAB = new Guid("b88f3099-1733-4e70-84e9-f374816301e4");
            //SessionManager.Get<Guid>(LABStudyBL.IdLABStudySessionKey, out idLAB);

            VigilanceMeasure newVigilanceMeasure = new VigilanceMeasure()
            {
                idVigilanceMeasure = GuidHelper.GenerateGuid(),
                DateCreated = DateTime.Now,
                idLABStudy = idLAB,
                Title = "Title",
                DateMeasure = Convert.ToDateTime("12/07/2014"),
                Content = "Contenu des mesures de vigilance",
            };

            LABPdfGenerationBL.GenerateVigilanceMeasure(newVigilanceMeasure, new List<string>(), string.Empty);

            return true;
        }
        public ActionResult AddVigilanceMeasure(IEnumerable<HttpPostedFileBase> files)
        {
            try
            {
                string titre = Request.Form["titre"];
                string dateMeasure = Request.Form["date"];
                string contenu = Request.Form["contenu"];
                string idCustomerPosted = Request.Form["idCustomer"];
                string idLABStudyPosted = Request.Form["idLABStudy"];
                Guid idCustomer = Guid.Empty;
                Guid.TryParse(idCustomerPosted, out idCustomer);

                Guid idLABStudy = Guid.Empty;
                Guid.TryParse(idLABStudyPosted, out idLABStudy);
                bool doAction = false;
                List<string> uploadedFiles = new List<string>();

                if (idCustomer != Guid.Empty)
                {
                    CustomerProspect customer = CustomerProspectBL.GetCustomerProspectById(idCustomer);
                    if (files != null)
                    {
                        int i = 0;
                        foreach (var file in files)
                        {
                            //Check file contenttype
                            //if (file != null && file.ContentType.CompareTo("application/pdf") == 0)
                            if (file != null && FileManager.IsPDF(file.FileName))
                            {
                                string sDocTypePrefix = ElectronicSafeDocumentBL.DocumentType.MV.ToString();
                                string fullPath = ElectronicSafeDocumentBL.BuildClientUploadDocumentPath(sDocTypePrefix, customer);
                                string fileName = ElectronicSafeDocumentBL.BuildDocumentName(sDocTypePrefix, customer.idCustomer, file.FileName);
                                fileName = fileName.Replace(".pdf", string.Format("_{0}.pdf", i)); //make unique the filename

                                // 1- Sauvegarde dans le repertoire
                                string filePath = System.IO.Path.Combine(fullPath, fileName);
                                file.SaveAs(filePath);

                                // upload réussi
                                doAction = true;

                                //Add file to list
                                uploadedFiles.Add(filePath);
                            }
                            i++;
                        }
                    }

                    if (doAction)
                    {
                        string sDocTypePrefix = ElectronicSafeDocumentBL.DocumentType.MV.ToString();
                        string docRelPath = ElectronicSafeDocumentBL.BuildClientDocumentPath(sDocTypePrefix, customer);
                        string fileName = ElectronicSafeDocumentBL.BuildDocumentName(sDocTypePrefix, customer.idCustomer, "mesures_vigilance.pdf");
                        string documentFullPath = System.IO.Path.Combine(ConfigurationManager.CoffreFortRootPath, docRelPath);
                        string pahtFileName = System.IO.Path.Combine(documentFullPath, fileName);

                        VigilanceMeasure newVigilanceMeasure = new VigilanceMeasure()
                        {
                            idVigilanceMeasure = GuidHelper.GenerateGuid(),
                            DateCreated = DateTime.Now,
                            idLABStudy = idLABStudy,
                            Title = titre,
                            DateMeasure = Convert.ToDateTime(dateMeasure),
                            Content = contenu,
                        };

                        // ETAPE à Suivre    
                        /*
                         * En cliquant sur "Enregistrer", l'application va :
                        1 - Générer et compléter la page d'entete (voir modèle joint)
                        2 - Générer une page avec les informations collectées via le formulaire (Titre, Date, Contenu)
                        3 - Merger l'ensemble avec les fichiers PDF joints
                        */
                        LABPdfGenerationBL.GenerateVigilanceMeasure(newVigilanceMeasure, uploadedFiles, pahtFileName);

                        /*
                        4 - Envoyer le tout au coffre fort électronique
                         * 
                         * Important !!!
                            La mise au coffre d'une mesure de vigilance complémentaire ou renforcée doit débiter "3 crédits" 
                            Elle doit figurer dans les logs sous la forme "Mise au coffre d'une mesure de vigilance"
                         * */

                        // 4.1- Upload file to DICTAO server
                        D3SClient clientD3S = new D3SClient();
                        string dictaoId = ElectronicSafeDocumentBL.SendToDictaoCoffreFort(documentFullPath, fileName, clientD3S);

                        if (!string.IsNullOrEmpty(dictaoId))
                        {
                            CreditOperationBL.SubstractCredit(customer.idFirmInstitution, CreditOperationBL.OperationType.MISE_AU_COFFRE_MESURE_VIGILANCE.ToString(), customer.idUserCreated, customer.idCustomer);

                            // 4.2- Sauvegarde dans la base (table ElectronicSafeDocument)
                            Guid idElectronicSafeDoc = ElectronicSafeDocumentBL.SaveDocumentToDB(fileName, sDocTypePrefix, string.Format("Mesures de vigilance {0}", DateTime.Now.ToString("dd/MM/yyyy")), docRelPath, idCustomer, dictaoId, clientD3S, (customer != null) ? true : false);

                            // 4.3- Sauvegarde dans la base (table VigilanceMeasure)
                            newVigilanceMeasure.idElectronicSafeDocument = idElectronicSafeDoc;

                            VigilanceMeasureBL.CreateVigilanceMeasure(newVigilanceMeasure);

                            // 5- Update de CustomerProspect
                            customer.DateVigilanceMeasureLast = Convert.ToDateTime(dateMeasure);
                            customer.NbVigilanceMeasure = 1;
                            CustomerProspectBL.Update(customer);
                        }
                        else
                        {
                            ErrorMessage = LanguageData.GetContent("vigilance_mise_au_coffre_erreur");
                        }
                    }
                    else
                    {
                        ErrorMessage = LanguageData.GetContent("vigilance_joindre_fichier");
                    }
                }
                else
                {
                    ErrorMessage = LanguageData.GetContent("vigilance_id_client_inexistant");
                }
            }
            catch (Exception ex)
            {
                Upsilab.Business.Log.Log.AppendException(ex);
                ErrorMessage = string.Format("{0} : <br /> {1}", LanguageData.GetContent("vigilance_mise_au_coffre_erreur"), ex.Message);
            }

            return RedirectToAction("SendToCoffreFort");
        }