Ejemplo n.º 1
0
        public void CreateAgent(string user, string actAsUser, DateTime begin, DateTime end, string[] processTypeNames)
        {
            ProcessType[] types = null;
            ActingRange   range = ActingRange.All;

            if (processTypeNames != null && processTypeNames.Length > 0)
            {
                types = processTypeNames.Select(o =>
                                                this._processTypeService.GetProcessType(o)).Where(o => o != null).ToArray();
                //声明的流程类型都不存在则不进行创建
                if (types.Length == 0)
                {
                    return;
                }
            }
            else
            {
                range = ActingRange.All;
            }

            this._agentService.Create(new Agent(this.GetUser(user)
                                                , this.GetUser(actAsUser)
                                                , begin
                                                , end
                                                , range
                                                , range == ActingRange.All ? null : types));
        }
Ejemplo n.º 2
0
        public Agent(User user, User actAs, DateTime begin, DateTime end, ActingRange range, params ProcessType[] processTypes)
            : this()
        {
            this.User  = user;
            this.ActAs = actAs;
            this.Range = range;

            this.ChangeTime(begin, end);

            if (range != ActingRange.All &&
                (processTypes == null || processTypes.Length == 0))
            {
                throw new InvalidOperationException("代理范围不为All时必须至少指定一个ProcessType");
            }

            if (range != ActingRange.All && processTypes != null)
            {
                processTypes.ToList().ForEach(o => this._actingItems.Add(new ProcessActingItem(o)));
            }

            this.Validate();
        }