public void SetStatus(TakeDocModel.Document document, string status, Guid userId, bool updateStatusVersion) { bool ok = (document.Status_Document.StatusDocumentReference.Equals(status) == false); if (ok) { bool okStatus = this.CheckNewStatus(document.Status_Document.StatusDocumentReference, status); if (okStatus == false) { throw new Exception("Erreur workflow"); } using (TransactionScope transaction = new TransactionScope()) { TakeDocModel.Status_Document stDocument = daoStDocument.GetBy(x => x.StatusDocumentReference == status && x.EntityId == document.EntityId).First(); // mise à jour du statut de la version à recu if (document.DocumentCurrentVersionId.HasValue && updateStatusVersion == true) { TakeDocModel.Version version = document.Version.Where(x => x.VersionId == document.DocumentCurrentVersionId).First(); servVersion.SetStatus(version, status, userId); } context.AddDocumentStatusHisto(document.DocumentId, document.DocumentStatusId, userId, document.EntityId); // mise à jour du statut du document à recu document.DocumentStatusId = stDocument.StatusDocumentId; document.UserUpdateData = userId; document.DateUpdateData = System.DateTimeOffset.UtcNow; daoDocument.Update(document); transaction.Complete(); } } }
public TakeDocModel.Document Create(Guid userId, Guid entityId, Guid documentId, Guid versionId, Guid typeDocumentId, string documentLabel, Guid?folderId) { TakeDocModel.Status_Document status = base.Context.Status_Document.Where(x => x.StatusDocumentReference == TakeDocModel.Status_Document.Create && x.EntityId == entityId).ToList().First(); TakeDocModel.Document retour = new TakeDocModel.Document(); retour.DocumentId = documentId; retour.DocumentCurrentVersionId = versionId; retour.DocumentReference = base.Context.GenerateReference("Document"); retour.DateCreateData = System.DateTimeOffset.UtcNow; retour.Status_Document = status; retour.DocumentStatusId = status.StatusDocumentId; retour.DocumentFolderId = folderId; retour.DocumentLabel = documentLabel; retour.DocumentTypeId = typeDocumentId; retour.DocumentOwnerId = userId; retour.UserCreateData = userId; retour.EntityId = entityId; retour.EtatDeleteData = false; base.Context.Document.Add(retour); base.Context.SaveChanges(); return(retour); }