/// <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); }
/// <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); }