/// <summary> /// Metodo per la chiusura del TASK /// </summary> /// <param name="idTask"></param> /// <param name="infoUtente"></param> /// <returns></returns> public static bool ChiudiLavorazioneTask(DocsPaVO.Task.Task task, string note, DocsPaVO.utente.InfoUtente infoUtente) { logger.Debug("Chiusura del TASK in BusinessLogic.Task.TaskManager - metodo: ChiudiLavorazioneTask "); bool result = false; try { DocsPaDB.Query_DocsPAWS.Task t = new DocsPaDB.Query_DocsPAWS.Task(); result = t.ChiudiLavorazioneTask(task.STATO_TASK.ID_STATO_TASK, task.STATO_TASK.NOTE_LAVORAZIONE, infoUtente); if (!result) { throw new Exception("Errore nella chiusura della lavorazione del task ID=" + task.ID_TASK); } // Se è presente un documento in risposta aggiorno nella profile lo stato del task if (!string.IsNullOrEmpty(task.ID_PROFILE_REVIEW)) { result = t.UpdateTaskStatusInProfile(task.ID_PROFILE_REVIEW, DocsPaDB.Query_DocsPAWS.Task.TaskStatus.CLOSED); } //Aggiorno le note nella dpa_trasm_utente if (result) { result = t.UpdateNoteTrasmUtente(task.ID_TRASM_SINGOLA, note, infoUtente); } } catch (Exception e) { logger.Debug("Errore in BusinessLogic.Task.TaskManager - metodo: CloseTask ", e); result = false; } return(result); }
public static DocsPaVO.Task.Task GetTaskByTrasmSingola(string idTrasmSingola, DocsPaVO.utente.InfoUtente infoUtente) { DocsPaVO.Task.Task task = new DocsPaVO.Task.Task(); try { DocsPaDB.Query_DocsPAWS.Task t = new DocsPaDB.Query_DocsPAWS.Task(); task = t.GetTaskByTrasmSingola(idTrasmSingola, infoUtente); } catch (Exception e) { logger.Error("Errore in BusinessLogic.Task.TaskManager - metodo: GetTaskByTrasmSingola ", e); } return(task); }
/// <summary> /// Associa il nuovo documento creato al task di origine /// </summary> /// <param name="idTask"></param> /// <param name="docnumber"></param> /// <param name="infoUtente"></param> /// <returns></returns> public static bool AssociaContributoAlTask(DocsPaVO.Task.Task task, DocsPaVO.documento.SchedaDocumento schedaDoc, DocsPaVO.utente.InfoUtente infoUtente) { logger.Debug("Chiusura del TASK in BusinessLogic.Task.TaskManager - metodo: AssociaContributoAlTask "); bool result = false; try { DocsPaDB.Query_DocsPAWS.Task t = new DocsPaDB.Query_DocsPAWS.Task(); result = t.AssociaContributoAlTask(task.ID_TASK, schedaDoc.docNumber, infoUtente); // Aggiorno la profile result = t.UpdateTaskStatusInProfile(schedaDoc.docNumber, DocsPaDB.Query_DocsPAWS.Task.TaskStatus.IN_PROGRESS); //Dò visibilità al ruolo mittente del task.Se il contributo viene inserito nel fascicolo da cui è partito il task non è necessario if (result && !string.IsNullOrEmpty(task.ID_PROFILE)) { DocsPaVO.trasmissione.Trasmissione resultTrasm = ExecuteTransmission(schedaDoc, task.RUOLO_MITTENTE.idGruppo, task.UTENTE_MITTENTE.idPeople, infoUtente); string desc = string.Empty; string method = "TRASM_DOC_" + (resultTrasm.trasmissioniSingole[0] as DocsPaVO.trasmissione.TrasmissioneSingola).ragione.descrizione.ToUpper().Replace(" ", "_"); if (resultTrasm.infoDocumento.segnatura == null) { desc = "Trasmesso Documento : " + resultTrasm.infoDocumento.docNumber.ToString(); } else { desc = "Trasmesso Documento : " + resultTrasm.infoDocumento.segnatura.ToString(); } if (resultTrasm != null) { BusinessLogic.UserLog.UserLog.WriteLog(resultTrasm.utente.userId, resultTrasm.utente.idPeople, resultTrasm.ruolo.idGruppo, resultTrasm.utente.idAmministrazione, method, resultTrasm.infoDocumento.docNumber, desc, DocsPaVO.Logger.CodAzione.Esito.OK, (infoUtente != null && infoUtente.delegato != null ? infoUtente.delegato : null), "0", (resultTrasm.trasmissioniSingole[0] as DocsPaVO.trasmissione.TrasmissioneSingola).systemId); } else { BusinessLogic.UserLog.UserLog.WriteLog(resultTrasm.utente.userId, resultTrasm.utente.idPeople, resultTrasm.ruolo.idGruppo, resultTrasm.utente.idAmministrazione, method, resultTrasm.infoDocumento.docNumber, desc, DocsPaVO.Logger.CodAzione.Esito.KO, (infoUtente != null && infoUtente.delegato != null ? infoUtente.delegato : null), "0", (resultTrasm.trasmissioniSingole[0] as DocsPaVO.trasmissione.TrasmissioneSingola).systemId); } } } catch (Exception e) { logger.Debug("Errore in BusinessLogic.Task.TaskManager - metodo: AssociaContributoAlTask ", e); result = false; } return(result); }
/// <summary> /// Metodo per la creazione di un reminder /// </summary> /// <param name="task"></param> /// <param name="infoUtente"></param> /// <returns></returns> public bool InsertReminder(DocsPaVO.Task.Task task, string subject, DocsPaVO.utente.InfoUtente infoUtente) { bool result = false; string query = string.Empty; string function = "DocsPaDb.Query_DocsPAWS.Reminder.InsertReminder"; logger.DebugFormat("{0} - START ", function); if (task == null) { logger.DebugFormat("{0} - Parameter task is null", function); logger.DebugFormat("{0} - END "); return(false); } try { DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("I_DPA_REMINDER"); if (DBType.ToUpper().Equals("ORACLE")) { q.setParam("IdReminder", DocsPaDbManagement.Functions.Functions.GetSystemIdNextVal("DPA_REMINDER")); } q.setParam("IdTask", task.ID_TASK); q.setParam("IdUtenteMitt", task.UTENTE_MITTENTE.idPeople); q.setParam("IdUtenteDest", task.UTENTE_DESTINATARIO.idPeople); q.setParam("DtaScadenza", DocsPaDbManagement.Functions.Functions.ToDate(task.STATO_TASK.DATA_SCADENZA)); q.setParam("NumInvii", "0"); q.setParam("Descr", GetStringParameterValue(subject)); query = q.getSQL(); logger.DebugFormat("{0} - {1} ", function, query); if (!ExecuteNonQuery(query)) { throw new Exception("Errore durante la creazione del reminder: " + query); } result = true; } catch (Exception e) { logger.Error(function, e); } logger.DebugFormat("{0} - END", function); return(result); }
/// <summary> /// Chiude il task /// </summary> /// <param name="task"></param> /// <param name="infoUtente"></param> /// <returns></returns> public static bool ChiudiTask(DocsPaVO.Task.Task task, DocsPaVO.utente.InfoUtente infoUtente) { logger.Debug("Chiusura del TASK in BusinessLogic.Task.TaskManager - metodo: ChiudiTask "); bool result = false; try { DocsPaDB.Query_DocsPAWS.Task t = new DocsPaDB.Query_DocsPAWS.Task(); result = t.ChiudiTask(task.STATO_TASK.ID_STATO_TASK, infoUtente); } catch (Exception e) { logger.Debug("Errore in BusinessLogic.Task.TaskManager - metodo: ChiudiTask ", e); result = false; } return(result); }
/// <summary> /// Metodo per la creazione del task /// </summary> /// <param name="task"></param> /// <param name="infoUtente"></param> /// <returns></returns> public static bool CreateTask(DocsPaVO.Task.Task task, DocsPaVO.utente.InfoUtente infoUtente) { logger.Debug("Creazione del TASK in BusinessLogic.Task.TaskManager - metodo: CreateTask "); bool result = false; try { DocsPaDB.Query_DocsPAWS.Task t = new DocsPaDB.Query_DocsPAWS.Task(); result = t.InsertTask(task, infoUtente); } catch (Exception e) { logger.Debug("Errore in BusinessLogic.Task.TaskManager - metodo: CreateTask ", e); result = false; } return(result); }
/// <summary> /// Metodo per la creazione di un reminder /// </summary> /// <param name="reminder"></param> /// <param name="infoUtente"></param> /// <returns></returns> private bool CreateReminder(DocsPaVO.Task.Task task, string subject, DocsPaVO.utente.InfoUtente infoUtente) { _logger.Debug("BusinessLogic.Task.ReminderManager.CreateReminder"); bool result = false; try { DocsPaDB.Query_DocsPAWS.Reminder r = new DocsPaDB.Query_DocsPAWS.Reminder(); result = r.InsertReminder(task, subject, infoUtente); } catch (Exception e) { _logger.Debug("Errore in BusinessLogic.Task.ReminderManager.CreateReminder", e); result = false; } return(result); }
/// <summary> /// Invia un reminder /// </summary> /// <param name="reminder"></param> /// <param name="infoutente"></param> /// <returns></returns> public bool SendReminder(DocsPaVO.Task.Task task, DocsPaVO.utente.InfoUtente infoutente) { _logger.Info("BEGIN"); bool ret = false; try { BusinessLogic.interoperabilita.CalendarMail.MailRequest request = CreateMailRequest(task.UTENTE_MITTENTE.idAmministrazione); request.Subject = ComputeMailSubject(task); request.Appointment = new interoperabilita.CalendarMail.iCalendar.AppointmentInfo() { Sequence = 1, UID = BusinessLogic.interoperabilita.CalendarMail.iCalendar.UidGenerator.Create(), OrganizerName = task.UTENTE_MITTENTE.cognome, OrganizerEMail = task.UTENTE_MITTENTE.email, Method = BusinessLogic.interoperabilita.CalendarMail.iCalendar.AppointmentMethodTypes.REQUEST, Status = BusinessLogic.interoperabilita.CalendarMail.iCalendar.AppointmentStatusTypes.CONFIRMED, DtStamp = DateTime.Now, Summary = request.Subject, DtStart = DateTime.Now, DtEnd = DateTime.Now, Alert = new interoperabilita.CalendarMail.iCalendar.AlertInfo() { TriggerDays = GetTriggerDays(task.STATO_TASK.DATA_SCADENZA), Description = request.Subject } }; // Invio messaggio DispatchMail(request); // Salvo i dati su db CreateReminder(task, request.Subject, infoutente); ret = true; } catch (Exception e) { _logger.Error(e.Message); } return(ret); }
public static bool RiapriLavorazione(DocsPaVO.Task.Task task, DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.Ruolo ruolo) { bool retVal = false; try { // Contesto transazionale using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { if (!string.IsNullOrEmpty(task.ID_PROJECT) && !string.IsNullOrEmpty(task.ID_PROFILE_REVIEW)) { //Inserisco il contributo creato nella precedente lavorazione all'interno di un sottofascicolo string descNewFolder = DocsPaUtils.Configuration.InitConfigurationKeys.GetValue("0", "BE_NOME_SOTTOFASCICOLO"); DocsPaVO.fascicolazione.Fascicolo fascicolo = BusinessLogic.Fascicoli.FascicoloManager.getFascicoloById(task.ID_PROJECT, infoUtente); DocsPaVO.fascicolazione.Folder folder = BusinessLogic.Fascicoli.FolderManager.getFolderByIdFascicolo(infoUtente.idPeople, infoUtente.idGruppo, fascicolo); DocsPaVO.fascicolazione.Folder folderContributo = (from f in folder.childs.Cast <DocsPaVO.fascicolazione.Folder>() where f.descrizione.Equals(descNewFolder) select f).FirstOrDefault(); if (folderContributo == null) { DocsPaVO.fascicolazione.Folder newFolder = new DocsPaVO.fascicolazione.Folder(); newFolder.idFascicolo = folder.idFascicolo; newFolder.idParent = folder.systemID; newFolder.descrizione = descNewFolder; DocsPaVO.fascicolazione.ResultCreazioneFolder result; folderContributo = BusinessLogic.Fascicoli.FolderManager.newFolder(newFolder, infoUtente, ruolo, out result); } if (folderContributo != null && !string.IsNullOrEmpty(folderContributo.systemID)) { bool isInFolder = BusinessLogic.Fascicoli.FascicoloManager.IsDocumentoInFolder(task.ID_PROFILE_REVIEW, folderContributo.systemID); if (!isInFolder) { string msg; //Rimuovo dal vecchio fascicolo BusinessLogic.Fascicoli.FolderManager.RemoveDocumentFromFolder(infoUtente, task.ID_PROFILE_REVIEW, folder, "", out msg); System.Collections.ArrayList listFolder = BusinessLogic.Fascicoli.FolderManager.GetFoldersDocument(task.ID_PROFILE_REVIEW, task.ID_PROJECT); foreach (DocsPaVO.fascicolazione.Folder f in listFolder) { BusinessLogic.Fascicoli.FolderManager.RemoveDocumentFromFolder(infoUtente, task.ID_PROFILE_REVIEW, f, "", out msg); } //Iserisco nel sottofascicolo indicato retVal = BusinessLogic.Fascicoli.FolderManager.addDocFolder(infoUtente, task.ID_PROFILE_REVIEW, folderContributo.systemID, false, out msg); } } if (retVal) { //Riapro la lavorazione del task DocsPaDB.Query_DocsPAWS.Task t = new DocsPaDB.Query_DocsPAWS.Task(); retVal = t.RiapriLavorazioneTask(task); } } else { //Riapro la lavorazione del task DocsPaDB.Query_DocsPAWS.Task t = new DocsPaDB.Query_DocsPAWS.Task(); retVal = t.RiapriLavorazioneTask(task); } if (retVal) { transactionContext.Complete(); } else { transactionContext.Dispose(); } } } catch (Exception e) { logger.Error("Errore in BusinessLogic.Task.TaskManager - metodo: RiapriLavorazione ", e); } return(retVal); }
private string ComputeMailSubject(DocsPaVO.Task.Task task) { return(string.Format("Reminder : {0} - {1}", task.DESC_RAGIONE_TRASM, task.ID_TASK)); }