示例#1
0
        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();
                }
            }
        }
示例#2
0
        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);
        }