using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using Ultimus; using ULA.Cathay.IntegracionesEIK.Estructuras; namespace ULA.Cathay.IntegracionesEIK { public class IntegracionesConsultaEIK : IIntegracionesConsultaEIK { public UltimusTaskResponse LoadFilteredTasks(int nIncidentNo, int? nFiltersMask, string strProcessNameFilter, string[] strArrStepLabelFilter, string[] strArrUserName) { string strError = string.Empty; Ultimus.WFServer.Task Tsk = null; Ultimus.WFServer.Tasklist TskList = null; UltimusTaskResponse TskListResponse = null; Ultimus.WFServer.TasklistFilter TskListFilter = null; try { TskListResponse = new UltimusTaskResponse() { CodigoRespuesta = "EXITOSO" }; TskList = new Ultimus.WFServer.Tasklist(); TskListFilter = new Ultimus.WFServer.TasklistFilter() { nIncidentNo = nIncidentNo, strProcessNameFilter = strProcessNameFilter, //nFiltersMask = }; if (strArrStepLabelFilter != null && strArrStepLabelFilter.Length > 0) TskListFilter.strArrStepLabelFilter = strArrStepLabelFilter; if (strArrUserName != null && strArrUserName.Length > 0) TskListFilter.strArrUserName = strArrUserName; switch(nFiltersMask) { case 1: TskListFilter.nFiltersMask = Ultimus.WFServer.Filters.nFilter_Current | Ultimus.WFServer.Filters.nFilter_Urgent; break; case 3: TskListFilter.nFiltersMask = Ultimus.WFServer.Filters.nFilter_Complete | Ultimus.WFServer.Filters.nFilter_IncidentComplete; break; } if (!TskList.LoadFilteredTasks(TskListFilter, out strError)) { throw new Exception(string.Format("Ha ocurrido un problema al intentar cargar el incidente:{0}. Mensaje:{1}", nIncidentNo, strError)); } if (TskList != null && TskList.GetTasksCount() > 0) { Tsk = TskList.GetFirstTask(); if (Tsk != null) { do { TskListResponse.UltimusTasksList.Add(new UltimusTask() { CheckoutUser = Tsk.CheckoutUser, dCost = Tsk.dCost, dDelayTime = Tsk.dDelayTime, dEndTime = Tsk.dEndTime, dOverDueTime = Tsk.dOverDueTime, dQueueEndTime = Tsk.dQueueEndTime, dQueueStartTime = Tsk.dQueueStartTime, dStartTime = Tsk.dStartTime, dUrgentTime = Tsk.dUrgentTime, Mode = Tsk.Mode, nIncidentNo = Tsk.nIncidentNo, nPriority = Tsk.nPriority, nProcessVersion = Tsk.nProcessVersion, nRecipientType = Tsk.nRecipientType, nStepProperties = Tsk.nStepProperties, nStepType = Tsk.nStepType, nTaskRate = Tsk.nTaskRate, nTaskStatus = Tsk.nTaskStatus, nTaskSubStatus = Tsk.nTaskSubStatus, nTaskTime = Tsk.nTaskTime, strAssignedToUser = Tsk.strAssignedToUser, strAssignedToUserFullName = Tsk.strAssignedToUserFullName, strFormUrl = Tsk.strFormUrl, strGroupName = Tsk.strGroupName, strHelpUrl = Tsk.strHelpUrl, strProcessName = Tsk.strProcessName, strRecipient = Tsk.strRecipient, strRecipientFullName = Tsk.strRecipientFullName, strStepId = Tsk.strStepId, strStepName = Tsk.strStepName, strStepOrg = Tsk.strStepOrg, strSummary = Tsk.strSummary, strTaskId = Tsk.strTaskId, strTaskSharedToUser = "", strUser = Tsk.strUser, strUserFullName = Tsk.strUserFullName }); Tsk = TskList.GetNextTask(); } while (Tsk != null); } } } catch (Exception ex) { TskListResponse.CodigoRespuesta = "ERROR"; TskListResponse.DescripcionRespuesta = ex.Message; } finally { TskList = null; TskListFilter = null; } return TskListResponse; } } }