TFS_ANTIGUO/SInCathay/ULA.Cathay.IntegracionesEIK/IntegracionesConsultaEIK.svc.cs

138 lines
5.8 KiB
C#
Raw Normal View History

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