protected override bool Process(Package package) { CRSMEmail activity = package.Message; EMailAccount account = package.Account; if (activity.IsIncome != true || activity.OwnerID != null || activity.WorkgroupID != null) { return(false); } bool assigned = false; if (account.DefaultEmailAssignmentMapID != null) { EPAssignmentProcessHelper <CRSMEmail> processor = PXGraph.CreateInstance <EPAssignmentProcessHelper <CRSMEmail> >(); assigned = processor.Assign(activity, account.DefaultEmailAssignmentMapID); } if (!assigned) { activity.OwnerID = account.DefaultOwnerID; activity.WorkgroupID = account.DefaultWorkgroupID; } return(true); }
public virtual bool Assign(Table item, int?assignmentMapID) { if (item == null) { throw new ArgumentNullException(nameof(item)); } if (assignmentMapID < 0) { throw new ArgumentOutOfRangeException(nameof(assignmentMapID)); } EPAssignmentMap map = PXSelect <EPAssignmentMap, Where <EPAssignmentMap.assignmentMapID, Equal <Required <EPAssignmentMap.assignmentMapID> > > > .SelectWindowed(this, 0, 1, assignmentMapID); if (map == null) { return(false); } ApproveInfo info; switch (map.MapType) { case EPMapType.Legacy: try { info = new EPAssignmentProcessHelper <Table>(_Graph).Assign(item, map, false).FirstOrDefault(); if (info != null) { item.OwnerID = info.OwnerID; item.WorkgroupID = info.WorkgroupID; return(true); } } catch { return(false); } return(false); case EPMapType.Assignment: try { info = new EPAssignmentHelper <Table>(_Graph).Assign(item, map, false, 0).FirstOrDefault(); if (info != null) { item.OwnerID = info.OwnerID; item.WorkgroupID = info.WorkgroupID; return(true); } } catch { return(false); } return(false); case EPMapType.Approval: throw new ArgumentException(nameof(assignmentMapID)); default: return(false); } }