Beispiel #1
0
        /// <summary>
        /// Aggiunge un nuovo commento allo storyboard indicando l'azione eseguita e l'utente
        /// </summary>
        /// <param name="documentName"></param>
        /// <param name="desk"></param>
        /// <param name="roleUser"></param>
        /// <param name="docVersion"></param>
        /// <param name="boardType"></param>
        private void AddCommentStoryBoard(BiblosDocumentInfo biblosDoc, Desk desk, DeskRoleUser roleUser, DeskDocumentVersion docVersion, DeskStoryBoardType boardType)
        {
            string commentStringType = string.Empty;

            switch (boardType)
            {
            case DeskStoryBoardType.CheckInComment:
                commentStringType = checkInComment;
                break;

            case DeskStoryBoardType.CheckOutComment:
                commentStringType = checkOutComment;
                break;

            case DeskStoryBoardType.UndoCheckout:
                commentStringType = undoCheckOutComment;
                break;

            case DeskStoryBoardType.SignedDocument:
                commentStringType = SIGNED_DOCUMENT_LOG_FORMAT;
                break;

            case DeskStoryBoardType.RenameDocument:
                commentStringType = renameComment;
                break;
            }

            string comment = string.Format(commentStringType, _userName, biblosDoc.Name, biblosDoc.Version);

            CurrentDeskStoryBoardFacade.AddCommentToStoryBoard(comment, desk, roleUser, docVersion, boardType);
        }
Beispiel #2
0
        /// <summary>
        /// Crea un DeskDocumentResult da un DeskDocument
        /// </summary>
        public DeskDocumentResult CreateDeskDocumentDto(DeskDocument document, BiblosDocumentInfo biblosDocument, Location deskLocation, bool fromDb)
        {
            DeskDocumentVersion deskVersioning = null;
            DeskStoryBoard      lastStoryBoard = null;
            DeskDocumentResult  dto            = MapperDeskDocumentResult.MappingDTO(document);


            // Mappo gli oggetti di Biblos
            dto.Name               = biblosDocument.Name;
            dto.Size               = biblosDocument.Size;
            dto.IsSavedToBiblos    = true;
            dto.IsSigned           = biblosDocument.IsSigned;
            dto.BiblosSerializeKey = biblosDocument.Serialized;

            //Mappo commenti e versioning
            if (fromDb)
            {
                deskVersioning = DeskDocumentVersionFacade.GetLastVersionByIdDeskDocument(document.Id);
                lastStoryBoard = CurrentDeskStoryBoardFacade.GetLastStoryBoard(deskVersioning);
            }

            dto.LastVersion           = fromDb ? deskVersioning.Version : new decimal(1.0);
            dto.IdChainBiblos         = biblosDocument.ChainId;
            dto.IdDocumentBiblos      = biblosDocument.DocumentId;
            dto.IsJustInCollaboration = CurrentDeskCollaborationFacade.IsDocumentJustInCollaboration(document.Desk, dto.Name);

            dto.LastComment = fromDb && lastStoryBoard != null ? lastStoryBoard.Comment : string.Empty;

            return(dto);
        }
        /// <summary>
        /// Inserisce una nuova approvazione o un nuovo rifiuto per il documento specificato
        /// </summary>
        /// <param name="idDeskDocument"></param>
        /// <param name="version"></param>
        /// <param name="user"></param>
        /// <param name="approve">Se true approva il documento, se false lo rifiuta</param>
        public void AddApproveOrRefuse(Guid idDeskDocument, decimal version, DeskRoleUser user, bool approve)
        {
            DeskDocument            doc        = CurrentDeskDocumentFacade.GetById(idDeskDocument);
            DeskDocumentEndorsement endorsment = new DeskDocumentEndorsement();

            if (!doc.DeskDocumentVersions.Any(x => x.Version.Equals(version)))
            {
                throw new Exception("Nessuna versione presente per quanto specificato");
            }

            DeskDocumentVersion docVersion = doc.DeskDocumentVersions.Single(x => x.Version.Equals(version));

            endorsment.DeskDocumentVersion = docVersion;
            endorsment.DeskRoleUser        = user;
            endorsment.Endorsement         = approve;

            //Aggiungo il commento relativo all'approvazione
            string   authorName  = CommonUtil.GetInstance().UserDescription;
            DateTime approveDate = DateTime.Now;
            string   comment     = string.Empty;

            if (approve)
            {
                comment = string.Format(APPROVE_COMMENT_FORMAT, authorName, approveDate);
            }
            else
            {
                comment = string.Format(REFUSE_COMMENT_FORMAT, authorName, approveDate);
            }

            Save(ref endorsment);

            CurrentDeskStoryBoardFacade.AddCommentToStoryBoard(comment, authorName, approveDate, doc.Desk, user, docVersion);
            //Inserisco il log di approvazione
            CurrentDeskLogFacade.InsertLog(DeskLogType.Approve, comment, doc.Desk, SeverityLog.Info);
        }