public static ProcessInstance ConvertToWFProcessInstance(Client.ProcessInstance origObj, bool loadDataFields) { if (origObj == null) { return null; } ProcessInstance procInst = new ProcessInstance(); procInst.ID = origObj.ID; //procInst.ProcID = origObj.ProcID; //procInst.ProcSetID = origObj.ProcSetID; procInst.FullName = origObj.FullName; //procInst.DisplayName = origObj.DisplayName; //procInst.FlowNumber = origObj.FlowNumber; procInst.Folio = origObj.Folio; procInst.Originator = origObj.Originator.Name; ///procInst.Status = (ProcInstStatus)(int)origObj.Status1; procInst.Priority = origObj.Priority; procInst.ExpectedDuration = origObj.ExpectedDuration; procInst.StartDate = origObj.StartDate.ToString("yyyy-MM-dd HH:mm"); if (loadDataFields) { if (origObj.DataFields != null) { Dictionary<string, DataField> dicFields = new Dictionary<string, DataField>(); foreach (Client.DataField field1 in origObj.DataFields) { DataField field = new DataField(); field.Name = field1.Name; //field.Type = origObj.DataFields[fieldName].Type.ToString(); field.Value = field1.Value; //field.Category = origObj.DataFields[fieldName].Category; dicFields.Add(field.Name, field); } procInst.DataFields = dicFields; } if (origObj.XmlFields != null) { Dictionary<string, XmlField> dicXmlFields = new Dictionary<string, XmlField>(); foreach (Client.XmlField field1 in origObj.XmlFields) { XmlField field = new XmlField(); field.Name = field1.Name; field.Value = field1.Value; field.Category = field1.Category; field.Hidden = field1.Hidden; field.MetaData = field1.MetaData; field.Schema = field1.Schema; field.Xsl = field1.Xsl; dicXmlFields.Add(field.Name, field); } procInst.XmlFields = dicXmlFields; } } return procInst; }
public static WorklistItem ConvertToWFWorklistItem(Client.WorklistItem origObj) { if (origObj == null) { return null; } WorklistItem wlItem = new WorklistItem(); wlItem.ID = origObj.ID; wlItem.ProcInstID = origObj.ProcessInstance.ID; wlItem.ActInstDestID = origObj.ActivityInstanceDestination.ID; wlItem.ActInstID = origObj.ActivityInstanceDestination.ActInstID; //wlItem.ProcID = origObj.ProcID; wlItem.ActID = origObj.ActivityInstanceDestination.ActID; wlItem.EventID = origObj.EventInstance.ID; wlItem.Destination = origObj.AllocatedUser; wlItem.AssignedDate = origObj.ActivityInstanceDestination.StartDate.ToString("yyyy-MM-dd HH:mm"); wlItem.StartDate = origObj.ProcessInstance.StartDate.ToString("yyyy-MM-dd HH:mm"); //wlItem.FinishDate = origObj.FinishDate; wlItem.Status = (WorklistStatus)(int)origObj.Status; //wlItem.ProfileID = origObj.ProfileID; //wlItem.TenantID = origObj.TenantID; wlItem.ActivityName = origObj.ActivityInstanceDestination.Name; wlItem.ActivityDispName = origObj.ActivityInstanceDestination.Name; wlItem.FullName = origObj.ProcessInstance.FullName; wlItem.ProcDispName = origObj.ProcessInstance.Name; //wlItem.Originator = origObj.; wlItem.Folio = origObj.ProcessInstance.Folio; //wlItem.FlowNumber = origObj.ProcessInstance.; wlItem.ProcInstStatus = (ProcInstStatus)(int)origObj.ProcessInstance.Status1; wlItem.ProcStartDate = origObj.ProcessInstance.StartDate.ToString("yyyy-MM-dd HH:mm"); wlItem.SN = origObj.SerialNumber; wlItem.Data = origObj.Data; if (origObj.ProcessInstance != null) { wlItem.ProcessInstance = ConvertToWFProcessInstance(origObj.ProcessInstance, true); } foreach (Client.Action origAction in origObj.Actions) { ApproveAction action = new ApproveAction(); action.Name = origAction.Name; action.MetaData = origAction.MetaData; //action.WorklistItem = wlItem; wlItem.Actions.Add(action); } return wlItem; }
private Tasks.Service.Dto.ProcessInstance ToProcessInstance(Client.ProcessInstance inst, bool includeInstanceDataFields = false) { if (inst == null) return null; var procInst = new Tasks.Service.Dto.ProcessInstance(); procInst.ID = inst.ID; procInst.FullName = inst.FullName; procInst.Folio = inst.Folio; procInst.Originator = K2User.DelApplySecurityLabel(inst.Originator.FQN); procInst.Priority = inst.Priority; procInst.ExpectedDuration = inst.ExpectedDuration; procInst.StartDate = inst.StartDate.ToString("yyyy-MM-dd HH:mm"); if (includeInstanceDataFields) { if (inst.DataFields != null) { Dictionary<string, Tasks.Service.Dto.DataField> dicFields = new Dictionary<string, Tasks.Service.Dto.DataField>(); foreach (Client.DataField field1 in inst.DataFields) { Tasks.Service.Dto.DataField field = new Tasks.Service.Dto.DataField(); try { field.Name = field1.Name; field.Value = field1.Value; dicFields.Add(field.Name, field); } catch (Exception) { continue; } } procInst.DataFields = dicFields; } if (inst.XmlFields != null) { Dictionary<string, XmlField> dicXmlFields = new Dictionary<string, XmlField>(); foreach (Client.XmlField field1 in inst.XmlFields) { XmlField field = new XmlField(); try { field.Name = field1.Name; field.Value = field1.Value; field.Category = field1.Category; field.Hidden = field1.Hidden; field.MetaData = field1.MetaData; field.Schema = field1.Schema; field.Xsl = field1.Xsl; dicXmlFields.Add(field.Name, field); } catch (Exception) { continue; } } procInst.XmlFields = dicXmlFields; } } return procInst; }
private WorklistItem ToWorklistItem(string k2User, Client.WorklistItem item, bool includeInstanceDataFields = false, bool includeActivityDataFields = false, bool includeItemActions = false) { if (item == null) return null; var wlItem = new Tasks.Service.Dto.WorklistItem(); wlItem.ID = item.ID; wlItem.ProcInstID = item.ProcessInstance.ID; wlItem.ActInstDestID = item.ActivityInstanceDestination.ID; wlItem.ActInstID = item.ActivityInstanceDestination.ActInstID; wlItem.ActID = item.ActivityInstanceDestination.ActID; wlItem.EventID = item.EventInstance.ID; wlItem.Destination = K2User.DelApplySecurityLabel(item.AllocatedUser); wlItem.AssignedDate = item.ActivityInstanceDestination.StartDate.ToString("yyyy-MM-dd HH:mm"); wlItem.StartDate = item.EventInstance.StartDate.ToString("yyyy-MM-dd HH:mm"); wlItem.Status = (Tasks.Service.Dto.WorklistStatus)(int)item.Status; wlItem.ActivityName = item.ActivityInstanceDestination.Name; wlItem.ActivityDispName = item.ActivityInstanceDestination.Name; wlItem.FullName = item.ProcessInstance.FullName; wlItem.ProcDispName = item.ProcessInstance.Name; wlItem.Folio = item.ProcessInstance.Folio; wlItem.ProcInstStatus = (ProcInstStatus)(int)item.ProcessInstance.Status1; wlItem.ProcStartDate = item.ProcessInstance.StartDate.ToString("yyyy-MM-dd HH:mm"); wlItem.SN = item.SerialNumber; wlItem.Data = item.Data; wlItem.Originator = K2User.DelApplySecurityLabel(item.ProcessInstance.Originator.FQN); if (!item.AllocatedUser.Equals(k2User, StringComparison.OrdinalIgnoreCase)) { wlItem.Data += "&SharedUser=" + item.AllocatedUser; } if (item.ProcessInstance != null) { wlItem.ProcessInstance = ToProcessInstance(item.ProcessInstance, includeInstanceDataFields); } if (includeActivityDataFields) { var actDataFields = new Dictionary<string, object>(); foreach (Client.DataField field in item.ActivityInstanceDestination.DataFields) { try { if (actDataFields.ContainsKey(field.Name)) actDataFields[field.Name] = field.Value; else actDataFields.Add(field.Name, field.Value); } catch (Exception) { continue; } } wlItem.ActivityDataFields = actDataFields; } if (includeItemActions) { foreach (Client.Action act in item.Actions) { var action = new ApproveAction(); action.Name = act.Name; action.MetaData = act.MetaData; //action.WorklistItem = wlItem; wlItem.Actions.Add(action); } } return wlItem; }
private List<WorklistItem> ToWorklistItems(string k2User, Client.Worklist worklist, bool includeInstanceDataFields = false, bool includeActivityDataFields = false, bool includeItemActions = false) { var wlItems = new List<WorklistItem>(); foreach (Client.WorklistItem item in worklist) { wlItems.Add(ToWorklistItem(k2User, item, includeInstanceDataFields, includeActivityDataFields, includeItemActions)); } return wlItems; }
/// <summary> /// Used to convert parameter value types to datafield ones. /// </summary> /// <param name="val">Value of the parameter</param> /// <param name="dType">DataType of the DataField</param> /// <returns></returns> private object GetDataFieldValue(object val, CLIENT.DataType dType) { switch (dType) { case CLIENT.DataType.TypeBinary: return Convert.FromBase64String(Convert.ToString(val)); default: return val; } }
public static DataField ConvertToWFDataField(Client.DataField origObj) { if (origObj == null) { return null; } DataField field = new DataField(); field.Name = origObj.Name; field.Value = origObj.Value; return field; }
public static WorklistItem ConvertToWFWorklistItem(ServiceContext context, Client.WorklistItem origObj) { if (origObj == null) { return null; } WorklistItem wlItem = new WorklistItem(); wlItem.ID = origObj.ID; wlItem.ProcInstID = origObj.ProcessInstance.ID; wlItem.ActInstDestID = origObj.ActivityInstanceDestination.ID; wlItem.ActInstID = origObj.ActivityInstanceDestination.ActInstID; //wlItem.ProcID = origObj.ProcID; wlItem.ActID = origObj.ActivityInstanceDestination.ActID; wlItem.EventID = origObj.EventInstance.ID; wlItem.Destination = origObj.AllocatedUser; wlItem.AssignedDate = origObj.ActivityInstanceDestination.StartDate.ToString("yyyy-MM-dd HH:mm"); wlItem.StartDate = origObj.ProcessInstance.StartDate.ToString("yyyy-MM-dd HH:mm"); //wlItem.FinishDate = origObj.FinishDate; wlItem.Status = (WorklistStatus)(int)origObj.Status; //wlItem.ProfileID = origObj.ProfileID; //wlItem.TenantID = origObj.TenantID; wlItem.ActivityName = origObj.ActivityInstanceDestination.Name; wlItem.ActivityDispName = origObj.ActivityInstanceDestination.Name; wlItem.FullName = origObj.ProcessInstance.FullName; wlItem.ProcDispName = origObj.ProcessInstance.Name; //Added By:BingYi 2014-07-17 Fixed:The Originator should be included in worklist item. wlItem.Originator = origObj.ProcessInstance.Originator.Name; wlItem.Folio = origObj.ProcessInstance.Folio; //wlItem.FlowNumber = origObj.ProcessInstance.; wlItem.ProcInstStatus = (ProcInstStatus)(int)origObj.ProcessInstance.Status1; wlItem.ProcStartDate = origObj.ProcessInstance.StartDate.ToString("yyyy-MM-dd HH:mm"); wlItem.SN = origObj.SerialNumber; wlItem.Data = origObj.Data; if (origObj.AllocatedUser.ToLower() != (K2User.ApplySecurityLabel(context.UserName)).ToLower()) { wlItem.Data += "&SharedUser=" + origObj.AllocatedUser; } if (origObj.ProcessInstance != null) { wlItem.ProcessInstance = ConvertToWFProcessInstance(origObj.ProcessInstance, true); } var activityDataFields = new Dictionary<string, object>(); foreach (Client.DataField item in origObj.ActivityInstanceDestination.DataFields) { if (activityDataFields.ContainsKey(item.Name)) activityDataFields[item.Name] = item.Value; else activityDataFields.Add(item.Name, item.Value); } wlItem.ActivityDataFields = activityDataFields; foreach (Client.Action origAction in origObj.Actions) { ApproveAction action = new ApproveAction(); action.Name = origAction.Name; action.MetaData = origAction.MetaData; //action.WorklistItem = wlItem; wlItem.Actions.Add(action); } return wlItem; }