Exemple #1
0
        /// <summary>
        ///     Builds the work item.
        /// </summary>
        /// <param name="projectName">The project name.</param>
        /// <param name="workItemTypeName">Name of the work item type.</param>
        /// <param name="fieldValues">The field values.</param>
        /// <returns>IWorkItem.</returns>
        public IWorkItem BuildWorkItem(string projectName, string workItemTypeName, IReadOnlyList <KeyValuePair <string, object> > fieldValues)
        {
            Dictionary <string, object> dictionary = fieldValues.ToDictionary(field => field.Key, field => field.Value);

            IWorkItemStore          workItemStore = WorkItemStore();
            IProject                project       = workItemStore.Projects[projectName];
            IWorkItemTypeCollection workItemTypes = project.WorkItemTypes;
            IWorkItemType           workItemType  = null;

            foreach (IWorkItemType entry in workItemTypes)
            {
                if (entry.Name == workItemTypeName)
                {
                    workItemType = entry;
                }
            }

            var workItem = new WorkItem(WorkItemTypeWrapper.GetInstance(workItemType));

            foreach (KeyValuePair <string, object> pair in dictionary)
            {
                string fieldName  = pair.Key;
                object fieldValue = pair.Value;
                workItem[fieldName] = fieldValue;
            }
            return(WorkItemWrapper.GetWrapper(workItem));
        }
Exemple #2
0
        public void ReadAllProperties_UnitTest()
        {
            IWorkItem        workItem = GetTestWorkItem();
            FieldCollection  real     = WorkItemWrapper.GetInstance(workItem).Fields;
            IFieldCollection instance = FieldCollectionWrapper.GetWrapper(real);

            ReadAllProperties(typeof(IFieldCollection), instance);
        }
Exemple #3
0
        public void ObjectProperties_UnitTest()
        {
            WorkItemWrapper workItem = GetTargetWorkItem(194);
            ILinkCollection links1   = ((IWorkItem)workItem).Links;
            ILinkCollection links2   = ((IWorkItem)workItem).Links;

            Assert.AreEqual(links1.GetType(), links2.GetType());
        }
Exemple #4
0
        /// <summary>
        ///     Gets the test instance.
        /// </summary>
        /// <returns>IWorkItem.</returns>
        internal static IWorkItem GetTestWorkItem()
        {
            WorkItemType workItemType = FindWorkItemType("Task");
            var          realInstance = new WorkItem(workItemType);
            IWorkItem    instance     = WorkItemWrapper.GetWrapper(realInstance);

            instance.Title = "Dummy Work IItem Created by Unit Tests of WorkItemWrapper";
            return(instance);
        }
Exemple #5
0
        partial void SyncWorkItem_PreCondition(IWorkItem instance, ref IWorkItemSyncData syncData)
        {
            IWorkItemRowSets rowSets = new MockIWorkItemRowSets();
            int      dataVersions    = instance.InternalVersion;
            WorkItem realWorkItem    = WorkItemWrapper.GetInstance(instance);
            var      realSyncData    = new WorkItemSyncData(rowSets, dataVersions, realWorkItem);

            syncData = WorkItemSyncDataWrapper.GetWrapper(realSyncData);
        }
Exemple #6
0
 static partial void InstanceFactory(ref WorkItemWrapper instance, string callerName)
 {
     if (callerName == "SyncWorkItem_UnitTest")
     {
         var          store     = WorkItemStoreWrapper_UnitTests.GetRealInstance();
         const string wiql      = "SELECT * FROM WorkItems WHERE [System.TeamProject] = 'RestPlaypen' ORDER BY [System.Id] ";
         var          workItems = store.Query(wiql);
         var          workItem  = workItems[0];
         instance = (WorkItemWrapper)WorkItemWrapper.GetWrapper(workItem);
     }
 }
        internal static WorkItemWrapper GetInstance([CallerMemberName] string callerName = "")
        {
            WorkItem real = default(WorkItem);

            RealInstanceFactory(ref real);
            var instance = (WorkItemWrapper)WorkItemWrapper.GetWrapper(real);

            InstanceFactory(ref instance, callerName);
            if (instance == null)
            {
                Assert.Inconclusive("Could not Create Test Instance");
            }
            return(instance);
        }
 public void UpdateWorkItem(SysWorkItem wi, SysProcessInstance pi, SysActivityInstance ai)
 {
     this.UpdateWorkItemBaseState(wi);
     this.Context.Update(wi);
     if (wi.Status == 1)
     {
         CustomWorkItemHandler handler = new CustomWorkItemHandler(this.Context);
         int    wiBaseId      = wi.WorkItemBaseId.Value;
         int    workItemId    = wi.WorkItemId;
         string wwfBookmarkId = wi.WwfBookmarkId;
         handler.OnWorkItemCompleted(wiBaseId, workItemId, wwfBookmarkId);
         if (ai.Activity.ActivityType == 6)
         {
             WorkItemWrapper wrapper = new WorkItemWrapper(this, wi, pi);
             int?            result  = new int?(CompleteWorkItemMessage_Approve.ConvertBoolToApproveResult(wrapper.ApproveResult.Value));
             new ActivityRemindHandler(this, pi, ai, ActivityRemindUseTimeType.WorkItemFinished, wi, result).Execute();
         }
         else
         {
             new ActivityRemindHandler(this, pi, ai, ActivityRemindUseTimeType.WorkItemFinished, wi, null).Execute();
         }
     }
 }
 static partial void InstanceFactory(ref WorkItemWrapper instance, [CallerMemberName] string callerName = "");
 /// <summary>
 ///     Gets the work item.
 /// </summary>
 /// <param name="id">The identifier.</param>
 /// <returns>WorkItemWrapper.</returns>
 internal IWorkItem GetWorkItem(int id)
 {
     return(WorkItemWrapper.GetWrapper(r_Instance.GetWorkItem(id)));
 }
        private bool TryCompleteGroup(SysWorkItemApproveGroup group, out bool approve_result)
        {
            approve_result = false;
            ICollection <SysWorkItem>         workItems  = group.WorkItems;
            Dictionary <int, WorkItemWrapper> dictionary = new Dictionary <int, WorkItemWrapper>(workItems.Count + 10);

            foreach (SysWorkItem item in workItems)
            {
                WorkItemWrapper wrapper = new WorkItemWrapper(base.PICacheFactory, item, base.PI);
                dictionary.Add(item.WorkItemId, wrapper);
            }
            List <WorkItemWrapper> source = new List <WorkItemWrapper>(workItems.Count);

            foreach (KeyValuePair <int, WorkItemWrapper> pair in dictionary)
            {
                WorkItemWrapper wrapper2 = pair.Value;
                bool?           isAdded  = wrapper2.WorkItem.IsAdded;
                if (isAdded.HasValue ? isAdded.GetValueOrDefault() : false)
                {
                    if (!wrapper2.WorkItem.ProxyWorkItemId.HasValue)
                    {
                        throw new ApplicationException("加签未设置代理工作项");
                    }
                    wrapper2.Parent = dictionary[wrapper2.WorkItem.ProxyWorkItemId.Value];
                    wrapper2.Parent.AddItems.Add(wrapper2);
                }
                else
                {
                    bool?isProxy = wrapper2.WorkItem.IsProxy;
                    if (isProxy.HasValue ? isProxy.GetValueOrDefault() : false)
                    {
                        if (!wrapper2.WorkItem.ProxyWorkItemId.HasValue)
                        {
                            throw new ApplicationException("代理未设置代理工作项");
                        }
                        wrapper2.Parent = dictionary[wrapper2.WorkItem.ProxyWorkItemId.Value];
                        wrapper2.Parent.ProxyItems.Add(wrapper2);
                    }
                    else
                    {
                        source.Add(wrapper2);
                    }
                }
            }
            foreach (WorkItemWrapper wrapper3 in source)
            {
                wrapper3.TryCompleteDeeply();
            }
            foreach (WorkItemWrapper wrapper5 in source)
            {
                wrapper5.CalResultDeeply();
            }
            SysActivityParticipant participant = base.AI.Activity.ActivityParticipants.FirstOrDefault <SysActivityParticipant>(p => p.ActivityParticipantId == group.ActivityParticipantId);

            if (participant == null)
            {
                throw new ApplicationException("根据群组实例查找【活动参与人】失败");
            }
            bool flag = false;

            if (participant.PassType == 1)
            {
                if (!participant.MinPassNum.HasValue)
                {
                    participant.MinPassNum = 1;
                }
                if (participant.MinPassNum.Value <= 0)
                {
                    participant.MinPassNum = 1;
                }
                int num  = 0;
                int num2 = 0;
                int num3 = 0;
                foreach (WorkItemWrapper wrapper7 in source)
                {
                    if (wrapper7.IsCompleted)
                    {
                        num3++;
                        bool?approveResult = wrapper7.ApproveResult;
                        if (approveResult.HasValue ? approveResult.GetValueOrDefault() : false)
                        {
                            num++;
                        }
                        if (wrapper7.ApproveResult.HasValue && !wrapper7.ApproveResult.Value)
                        {
                            num2++;
                        }
                    }
                }
                int num4 = participant.MinPassNum.Value;
                if (num3 >= source.Count)
                {
                    flag           = true;
                    approve_result = num >= num4;
                    return(flag);
                }
                bool?sumAfterAllComplete = base.AI.Activity.SumAfterAllComplete;
                if (sumAfterAllComplete.HasValue ? sumAfterAllComplete.GetValueOrDefault() : false)
                {
                    return(false);
                }
                if (num >= num4)
                {
                    flag           = true;
                    approve_result = true;
                    return(flag);
                }
                if (num2 > (source.Count - num4))
                {
                    flag           = true;
                    approve_result = false;
                }
                return(flag);
            }
            if (participant.PassType == 2)
            {
                if (!participant.MinPassRatio.HasValue)
                {
                    throw new ApplicationException("未指定最小通过率");
                }
                if (participant.MinPassRatio <= 0.0)
                {
                    throw new ApplicationException("最小通过率<=0, 它必须介于0-100之间(大于0,小于等于100");
                }
                if (participant.MinPassRatio > 100.0)
                {
                    throw new ApplicationException("最小通过率>100, 它必须介于0-100之间(大于0,小于等于100");
                }
                int num5  = 0;
                int num6  = 0;
                int num7  = 0;
                int count = source.Count;
                foreach (WorkItemWrapper wrapper8 in source)
                {
                    if (wrapper8.IsCompleted)
                    {
                        num7++;
                        bool?nullable17 = wrapper8.ApproveResult;
                        if (nullable17.HasValue ? nullable17.GetValueOrDefault() : false)
                        {
                            num5++;
                        }
                        if (wrapper8.ApproveResult.HasValue && !wrapper8.ApproveResult.Value)
                        {
                            num6++;
                        }
                    }
                }
                double num9 = participant.MinPassRatio.Value;
                if (num7 >= source.Count)
                {
                    flag           = true;
                    approve_result = (num5 * 100.0) >= (count * num9);
                    return(flag);
                }
                bool?nullable19 = base.AI.Activity.SumAfterAllComplete;
                if (nullable19.HasValue ? nullable19.GetValueOrDefault() : false)
                {
                    return(false);
                }
                double num10 = 100.0;
                if ((num5 * num10) >= (count * num9))
                {
                    flag           = true;
                    approve_result = true;
                    return(flag);
                }
                if (((1.0 * num6) / ((double)count)) > ((100.0 - num9) / 100.0))
                {
                    flag           = true;
                    approve_result = true;
                }
                return(flag);
            }
            WorkItemWrapper wrapper9 = source.FirstOrDefault <WorkItemWrapper>(p => p.IsCompleted && p.ApproveResult.HasValue);

            if (wrapper9 != null)
            {
                flag           = true;
                approve_result = wrapper9.ApproveResult.Value;
            }
            return(flag);
        }