public static void SaveCalculatedData(FirmInstitutionCalculatedData calculatedData) { using (var context = new UpsilabEntities()) { SaveCalculatedData(calculatedData); } }
public static SignatureTransaction CreateTransaction(Guid idUserCreated, Guid idFirmInstitutionCGP, SignatureTransactionType transactionType) { using (UpsilabEntities context = new UpsilabEntities()) { context.Connection.Open(); using (var dbContextTransaction = context.Connection.BeginTransaction()) { try { //1- Create transaction --------------------------------------------------------- var transaction = new SignatureTransaction { idFirmInstitution = idFirmInstitutionCGP, idSignatureTransaction = GuidHelper.GenerateGuid(), idUserCreated = idUserCreated, SignatureTransactionType = transactionType.ToString(), DateCreated = DateTime.Now, Status = DocumentBL.Status.InProgress.ToString(), DocumentsInitialized = false, }; context.SignatureTransaction.AddObject(transaction); context.SaveChanges(); //2- Signature Transaction Status ----------------------------------------------- var status = DocumentStatusBL.GetByCode(DocumentBL.Status.InProgress.ToString()); SignatureTransactionStatutBL.Add(transaction.idSignatureTransaction, status.idDocumentStatus, context); //Update status in FirmInstitutionCalculatedData var calculatedData = FirmInstitutionBL.GetCalculatedData(idFirmInstitutionCGP); if (calculatedData == null) { calculatedData = new FirmInstitutionCalculatedData() { idFirmInstitution = idFirmInstitutionCGP }; } if (transactionType == SignatureTransactionType.CONVENTION) { calculatedData.ConventionLatestStatus = DocumentBL.Status.InProgress.ToString(); } else if (transactionType == SignatureTransactionType.AVENANT) { calculatedData.AvenantLatestStatus = DocumentBL.Status.InProgress.ToString(); } FirmInstitutionBL.SaveCalculatedData(calculatedData, context); //3- Add the 4 documents automatically : CPART, CINT, CCOURT, CMD --------------- if (transactionType == SignatureTransactionType.CONVENTION) { var listDocumentTypes = GetDocumentTypes(SignatureTransactionType.CONVENTION); if (listDocumentTypes != null) DocumentBL.AddDocuments(transaction.idSignatureTransaction, listDocumentTypes, context); } //4- Create signatory ------------------------------------------------------------ //CGP var firmAdviser = FirmInstitutionAdviserBL.GetDefaultSignatory(idFirmInstitutionCGP); if (firmAdviser != null) { SignatoryBL.CreateSignatory(transaction.idSignatureTransaction, firmAdviser.User.idUser, SignatoryBL.Roles.CGP.ToString(), context); } //SDG SignatoryBL.CreateSignatory(transaction.idSignatureTransaction, idUserCreated, SignatoryBL.Roles.SDG.ToString(), context); //5- Commit transaction ---------------------------------------------------------- dbContextTransaction.Commit(); //6- Reload transaction ---------------------------------------------------------- transaction = DocumentSignatureTransactionBL.GetTransactionByCGP(idFirmInstitutionCGP, transactionType.ToString()); return transaction; } catch (Exception e) { dbContextTransaction.Rollback(); Log.Log.AppendException(e); throw new Exception("SavingError"); } } } }
public static void SaveCalculatedData(FirmInstitutionCalculatedData calculatedData, UpsilabEntities context) { if (calculatedData.idFirmInstitutionCalcatedData > 0) { context.FirmInstitutionCalculatedData.Attach(calculatedData); context.ObjectStateManager.ChangeObjectState(calculatedData, System.Data.EntityState.Modified); context.SaveChanges(); } else { context.FirmInstitutionCalculatedData.Attach(calculatedData); context.ObjectStateManager.ChangeObjectState(calculatedData, System.Data.EntityState.Added); context.SaveChanges(); } }