/// <summary> /// Annullamento dello stato CheckedOut per un documento /// </summary> /// <param name="adminInfoUtente">Utente amministratore</param> /// <param name="checkOutAdminStatus"></param> /// <returns></returns> public static ValidationResultInfo ForceUndoCheckOut(InfoUtente adminInfoUtente, CheckOutStatus checkOutAdminStatus) { ValidationResultInfo retValue = new ValidationResultInfo(); // Creazione contesto transazionale using (DocsPaDB.TransactionContext transactionContext = new TransactionContext()) { //if (IsAdminUser(adminInfoUtente)) //{ CheckInOutAdminDocumentManager adminDocumentMng = new CheckInOutAdminDocumentManager(adminInfoUtente); try { if (!adminDocumentMng.ForceUndoCheckOut(checkOutAdminStatus)) { retValue.BrokenRules.Add(CreateBrokenRule(FORCE_UNDO_CHECK_OUT_ERROR, MSG_FORCE_UNDO_CHECK_OUT_ERROR)); } else { if (BusinessLogic.Documenti.DocManager.isDocInConversionePdf(checkOutAdminStatus.IDDocument)) { // Rimozione del documento dalla coda di conversione PDF qualora il blocco sia stato iniziato da una conversione PDF BusinessLogic.Documenti.DocManager.delDocRichiestaConversionePdf(checkOutAdminStatus.IDDocument); } } } catch (Exception ex) { logger.Debug(ex.Message); retValue.BrokenRules.Add(CreateBrokenRule(FORCE_UNDO_CHECK_OUT_ERROR, ConcatErrorMessage(MSG_FORCE_UNDO_CHECK_OUT_ERROR, ex))); } //} //else //{ // retValue.BrokenRules.Add(CreateBrokenRule(USER_NOT_ADMIN,MSG_USER_NOT_ADMIN)); //} retValue.Value = (retValue.BrokenRules.Count == 0); if (retValue.Value) { transactionContext.Complete(); } } return(retValue); }
/// <summary> /// Reperimento di tutti i documenti in stato CheckedOut relativamente ad un utente /// </summary> /// <param name="adminInfoUtente"></param> /// <param name="idAdministration"></param> /// <param name="idUser"></param> /// <returns></returns> public static CheckOutStatus[] GetCheckOutDocuments(InfoUtente adminInfoUtente, string idAdministration, string idUser) { CheckOutStatus[] retValue = null; // Verifica se l'utente è amministratore //if (IsAdminUser(adminInfoUtente)) //{ CheckInOutAdminDocumentManager adminDocumentMng = new CheckInOutAdminDocumentManager(adminInfoUtente); retValue = adminDocumentMng.GetCheckOutStatusDocuments(idUser); //} //else //retValue = new CheckOutStatus[0]; return(retValue); }
/// <summary> /// Verifica se, per il documentale, è possibile annullare il blocco /// </summary> /// <param name="adminInfoUtente"></param> /// <returns></returns> public static bool CanForceUndoCheckOut(InfoUtente adminInfoUtente) { CheckInOutAdminDocumentManager adminDocumentMng = new CheckInOutAdminDocumentManager(adminInfoUtente); return(adminDocumentMng.CanForceUndoCheckOut()); }