public void NewDossier(EquinoxeExtend.Shared.Object.Record.Dossier iNewDossier) { if (iNewDossier.DossierId != -1) { throw new Exception("L'Id de la spécification est invalide"); } if (iNewDossier.Name.IsNullOrEmpty()) { throw new Exception("Le nom du dossier est invalide"); } if (iNewDossier.ProjectName.IsNullOrEmpty()) { throw new Exception("Le nom du projet est invalide"); } if (DBRecordDataService.Any <T_E_Dossier>(x => x.Name == iNewDossier.Name)) { throw new Exception("Le dossier existe déjà"); } if (iNewDossier.Specifications.Enum().Count() != 1) { throw new Exception("Le nombre de spécification doit être égal à 1"); } if (iNewDossier.IsTemplate) { if (iNewDossier.TemplateName.IsNullOrEmpty()) { throw new Exception("Le nom du template n'est pas valide"); } if (DBRecordDataService.Any <T_E_Dossier>(x => x.TemplateName == iNewDossier.TemplateName)) { throw new Exception("Le nom du template est déjà existant"); } } using (var ts = new TransactionScope()) { var newSpecification = iNewDossier.Specifications.Single(); //Création du Dossier var newEntity = new T_E_Dossier(); newEntity.Merge(iNewDossier); newSpecification.DossierId = DBRecordDataService.AddDossier(newEntity); //Création de la Spécification NewSpecification(newSpecification); ts.Complete(); } }