예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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());
        }