Example #1
0
        public virtual JObject Public(HttpContext context)
        {
            YZRequest request = new YZRequest(context);

            this.ApproveCheck(context);

            int     taskid   = request.GetInt32("TaskID");
            JObject jPost    = request.GetPostData <JObject>();
            string  comments = (string)jPost["comments"];
            BPMObjectNameCollection accounts = jPost["uids"].ToObject <BPMObjectNameCollection>();

            UserCollection users = new UserCollection();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                foreach (string account in accounts)
                {
                    User user = BPMTask.Public(cn, taskid, account);
                    users.Add(user);
                }

                JObject rv = new JObject();
                rv[YZJsonProperty.success] = true;
                rv["UserNameList"]         = YZStringHelper.GetUserNameListString(users);

                return(rv);
            }
        }
Example #2
0
        public virtual JObject Repair(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            int       taskid  = request.GetInt32("TaskID");

            JObject    jPost       = request.GetPostData <JObject>();
            string     comments    = (string)jPost["comments"];
            List <int> fromStepIDs = jPost["fromStepIDs"].ToObject <List <int> >();
            BPMObjectNameCollection toNodeNames = jPost["toNodeNames"].ToObject <BPMObjectNameCollection>();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                BPMStepCollection steps = BPMTask.Repair(cn, taskid, fromStepIDs.ToArray(), toNodeNames, comments);

                List <string> to = new List <string>();
                foreach (BPMProcStep step in steps)
                {
                    to.Add(String.Format("{0}[{1}]", step.NodeName, YZStringHelper.GetUserFriendlyName(step.RecipientAccount, step.RecipientFullName)));
                }

                JObject rv = new JObject();
                rv[YZJsonProperty.success] = true;
                rv["tosteps"] = String.Join(";", to.ToArray());

                return(rv);
            }
        }
Example #3
0
        public virtual JObject InviteIndicate(HttpContext context)
        {
            YZRequest request = new YZRequest(context);

            this.ApproveCheck(context);

            int     taskid   = request.GetInt32("TaskID");
            JObject jPost    = request.GetPostData <JObject>();
            string  comments = (string)jPost["comments"];
            BPMObjectNameCollection accounts = jPost["uids"].ToObject <BPMObjectNameCollection>();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                BPMTask        task  = BPMTask.Load(cn, taskid);
                UserCollection users = BPMTask.InviteIndicate(cn, taskid, accounts, comments);

                JObject rv = new JObject();
                rv[YZJsonProperty.success] = true;
                rv["SN"]           = task.SerialNum;
                rv["UserNameList"] = YZStringHelper.GetUserNameListString(users);

                return(rv);
            }
        }
Example #4
0
        public virtual void MoveOUObjects(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    src     = request.GetString("src");
            string    tag     = request.GetString("tag");
            bool      copy    = request.GetBool("copy");

            JObject post = request.GetPostData <JObject>();
            BPMObjectNameCollection roles   = post["roles"].ToObject <BPMObjectNameCollection>();
            BPMObjectNameCollection members = post["members"].ToObject <BPMObjectNameCollection>();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                if (copy)
                {
                    OU.CopyRoleAndMembers(cn, src, tag, roles, members);
                }
                else
                {
                    OU.MoveRoleAndMembers(cn, src, tag, roles, members);
                }
            }
        }
Example #5
0
        protected virtual void ExpandTree(BPMConnection cn, JArray items, string path)
        {
            BPMObjectNameCollection folderNames = cn.GetFolders(StoreZoneType.FormService, path, BPMPermision.Read);

            foreach (String folderName in folderNames)
            {
                string folderPath;

                if (String.IsNullOrEmpty(path))
                {
                    folderPath = folderName;
                }
                else
                {
                    folderPath = path + "/" + folderName;
                }

                JObject item = new JObject();
                items.Add(item);
                item["leaf"]     = false;
                item["text"]     = folderName;
                item["iconCls"]  = "folder";
                item["expanded"] = false;
                item["path"]     = folderPath;
                item["rsid"]     = StoreZoneType.FormService.ToString() + "://" + folderPath;

                JArray children = new JArray();
                item[YZJsonProperty.children] = children;
                this.ExpandTree(cn, children, folderPath);
            }
        }
Example #6
0
    protected void _btnSubmit_Click(object sender, EventArgs e)
    {
        BPMObjectNameCollection rejectedNotifys = new BPMObjectNameCollection();

        foreach (ListItem lstItem in this._chksProvider.Items)
        {
            if (!lstItem.Selected)
            {
                rejectedNotifys.Add(lstItem.Value);
            }
        }

        using (BPMConnection cn = new BPMConnection())
        {
            try
            {
                cn.WebOpen();

                BPM.Client.User.SaveNotifySetting(cn, YZAuthHelper.LoginUserAccount, rejectedNotifys);

                this._labErr.Visible  = false;
                this._labInfo.Visible = true;
                this._labInfo.Text    = Resources.YZStrings.Aspx_ChgNotify_Success;
            }
            catch (Exception exp)
            {
                this._labInfo.Visible = true;
                this._labInfo.Text    = Resources.YZStrings.Aspx_ChgNotify_Fail;
                this._labErr.Visible  = true;
                this._labErr.Text     = exp.Message;
            }
        }
    }
Example #7
0
        public virtual JObject MemberFromFullNames(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            JArray    jPost   = request.GetPostData <JArray>();
            BPMObjectNameCollection memberfullnames = jPost.ToObject <BPMObjectNameCollection>();
            JObject rv = new JObject();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                foreach (string memberfullname in memberfullnames)
                {
                    Member member = Member.TryGetMember(cn, memberfullname);
                    if (member == null)
                    {
                        continue;
                    }

                    User user = member.GetUser(cn);
                    //已删除和禁用的用户不显示
                    if (user == null || user.Disabled)
                    {
                        continue;
                    }

                    rv[memberfullname] = this.JObjectFromMember(member, user);
                }
            }

            return(rv);
        }
Example #8
0
        public UserCollection GetUnSignedUsers(BPMConnection cn, BPMObjectNameCollection accounts)
        {
            BPMObjectNameCollection accountsUnSigned = new BPMObjectNameCollection();

            accountsUnSigned.AddRange(accounts);

            foreach (Footmark footmark in this)
            {
                if (accountsUnSigned.Contains(footmark.Account))
                {
                    accountsUnSigned.Remove(footmark.Account);
                }
            }

            UserCollection users = new UserCollection();

            foreach (string account in accountsUnSigned)
            {
                if (users.Contains(account))
                {
                    continue;
                }

                User user = User.TryGetUser(cn, account);
                if (user != null)
                {
                    users.Add(user);
                }
            }

            return(users);
        }
Example #9
0
    public static void ApplayRecordPermision(BPMConnection cn, JsonItemCollection items, string rsid, string tableName, string jsonitemKeyAttrName)
    {
        //获得资源上的记录级权限种类
        UserResourcePermisionCollection resourcePerms = UserResourceSecurityManager.GetResourcePermisions(cn, rsid);
        BPMObjectNameCollection         permNames     = new BPMObjectNameCollection();

        foreach (UserResourcePermision resourcePerm in resourcePerms)
        {
            if (resourcePerm.PermType == UserResourcePermisionType.Record)
            {
                permNames.Add(resourcePerm.PermName);
            }
        }

        //应用权限
        foreach (JsonItem item in items)
        {
            string key = Convert.ToString(item.Attributes[jsonitemKeyAttrName]);
            bool[] rv  = RecordSecurityManager.CheckPermision(cn, tableName, key, permNames);

            JsonItem jsonPerm = new JsonItem();
            item.Attributes["perm"] = jsonPerm;
            for (int i = 0; i < permNames.Count; i++)
            {
                jsonPerm.Attributes[permNames[i]] = rv[i];
            }
        }
    }
Example #10
0
        public static object[] GetRoles(BPMConnection cn, string memberFullName)
        {
            List <object> rv = new List <object>();

            BPMObjectNameCollection roleSids = SecurityManager.GetMemberRoleSIDs(cn, memberFullName);

            foreach (string sid in roleSids)
            {
                string dept     = null;
                string roleName = SecurityManager.TryGetObjectNameFromSID(cn, SIDType.RoleSID, sid);
                if (String.IsNullOrEmpty(roleName))
                {
                    roleName = sid;
                }
                else
                {
                    Role role = new Role();
                    role.Open(cn, roleName);
                    roleName = role.Name;
                    OU ou = role.GetParentOU(cn);
                    dept = ou.GetFriendlyFullName(cn);
                }

                rv.Add(
                    new
                {
                    ou       = dept,
                    RoleName = roleName
                }
                    );
            }

            return(rv.ToArray());
        }
Example #11
0
        public virtual JObject UserFromUIDs(HttpContext context)
        {
            YZRequest request            = new YZRequest(context);
            JArray    jPost              = request.GetPostData <JArray>();
            BPMObjectNameCollection uids = jPost.ToObject <BPMObjectNameCollection>();
            JObject rv = new JObject();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                foreach (string uid in uids)
                {
                    User user = User.TryGetUser(cn, uid);

                    //已删除和禁用的用户不显示
                    if (user == null || user.Disabled)
                    {
                        continue;
                    }

                    rv[uid] = this.JObjectFromMember(new Member(), user);
                }
            }

            return(rv);
        }
Example #12
0
        protected virtual string GetFilter(IDbCommand cmd, string columnName, BPMObjectNameCollection include, BPMObjectNameCollection exclude)
        {
            string filter    = null;
            string paramName = this.GetParameterName(columnName);

            if (include != null && include.Count != 0)
            {
                if (include.Count == 1)
                {
                    filter = this.CombinCond(filter, String.Format("{0}={1}", columnName, paramName));
                    cmd.Parameters.Add(this.CreateParameter(paramName, this.Convert(include[0], true), false));
                }
                else
                {
                    filter = this.CombinCond(filter, String.Format("{0} IN({1})", columnName, this.GetDbInList(include)));
                }
            }

            if (exclude != null && exclude.Count != 0)
            {
                filter = this.CombinCond(filter, String.Format("{0} NOT IN({1})", columnName, this.GetDbInList(exclude)));
            }

            return(filter);
        }
Example #13
0
        public virtual JObject GetRecordPermision(HttpContext context)
        {
            YZRequest request    = new YZRequest(context);
            string    datasource = request.GetString("datasource", null);
            string    rsid       = request.GetString("rsid");
            string    strPerms   = request.GetString("perms", null);
            string    strIds     = request.GetString("ids", "");
            BPMObjectNameCollection permNames = BPMObjectNameCollection.FromStringList(strPerms, ',');

            JObject rv    = new JObject();
            JObject perms = new JObject();

            rv["perms"] = perms;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                foreach (string id in strIds.Split(','))
                {
                    bool[] checkResult = RecordSecurityManager.CheckPermision(cn, rsid, id, permNames, datasource);

                    JObject jPerm = new JObject();
                    perms[id] = jPerm;

                    for (int i = 0; i < permNames.Count; i++)
                    {
                        jPerm[permNames[i]] = checkResult[i];
                    }
                }
            }

            rv[YZJsonProperty.success] = true;
            return(rv);
        }
Example #14
0
        //日志
        public IDataReader GetAppLog(IDbConnection cn, BPMObjectNameCollection sids, DateTime date, string filter, string sort, int startRowIndex, int rows)
        {
            date = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0);

            //Command
            using (OracleCommand cmd = new OracleCommand())
            {
                cmd.Connection = cn as OracleConnection;
                cmd.BindByName = true;

                //获得查询条件
                filter = this.CombinCond("EXTDATE=:EXTDATE", filter);
                cmd.Parameters.Add(":EXTDATE", OracleDbType.Date).Value = date;

                if (!sids.Contains(WellKnownSID.Administrators))
                {
                    string sidfilter = String.Format("ObjectID IN(SELECT ObjectID FROM BPMSysAppLogACL WITH(INDEX(YZIX_BPMSysAppLogACL_ExtDate)) WHERE ExtDate=:ExtDate AND SID IN({0}))", this.GetDbInList(sids));
                    filter = this.CombinCond(filter, sidfilter);
                }

                if (!String.IsNullOrEmpty(filter))
                {
                    filter = " WHERE " + filter;
                }

                //排序
                if (String.IsNullOrEmpty(sort))
                {
                    sort = "LOGDATE DESC";
                }

                this.GeneratePageCommand(cmd, "SELECT * FROM BPMSYSAPPLOG" + filter, sort, startRowIndex, rows);
                return(cmd.ExecuteReader());
            }
        }
Example #15
0
        public virtual JObject SaveRole(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    mode    = request.GetString("mode");

            JObject data = request.GetPostData <JObject>();
            Role    role = data["Role"].ToObject <Role>();
            BPMObjectNameCollection members = data["Members"].ToObject <BPMObjectNameCollection>();
            Role newRole = null;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                if (mode == "edit")
                {
                    newRole = Role.UpdateRole(cn, request.GetString("fullname"), role, members);
                }
                else
                {
                    newRole = OU.AddRole(cn, request.GetString("parentou"), role, members);
                }
            }

            return(this.SerializeOUObject(newRole));
        }
Example #16
0
        public virtual JObject AddExistUsers(HttpContext context)
        {
            YZRequest request  = new YZRequest(context);
            string    parentou = request.GetString("parentou");

            JArray post = request.GetPostData <JArray>();
            BPMObjectNameCollection accounts = post.ToObject <BPMObjectNameCollection>();

            JObject rv    = new JObject();
            JArray  added = new JArray();

            rv["added"] = added;

            try
            {
                using (BPMConnection cn = new BPMConnection())
                {
                    cn.WebOpen();

                    foreach (string account in accounts)
                    {
                        OU.AddMember(cn, parentou, account);
                        added.Add(account);
                    }
                }
            }
            catch (Exception e)
            {
                rv[YZJsonProperty.success]      = false;
                rv[YZJsonProperty.errorMessage] = e.Message;
            }

            return(rv);
        }
Example #17
0
 public void SubscribeTo(BPMObjectNameCollection channels)
 {
     lock (this._syncRootSubscriptions)
     {
         this._subscriptions.AddRange(channels);
     }
 }
Example #18
0
 public void UnSubscribeTo(BPMObjectNameCollection channels)
 {
     lock (this._syncRootSubscriptions)
     {
         this._subscriptions.Remove(channels);
     }
 }
Example #19
0
        public IDataReader GetProcessAnalysisTrend(IDbConnection cn, int year, BPMObjectNameCollection include, BPMObjectNameCollection exclude)
        {
            //Command
            OracleCommand cmd = new OracleCommand();

            cmd.Connection = cn as OracleConnection;
            cmd.BindByName = true;

            //in过滤
            string extFilter = this.GetFilter(cmd, "PROCESSNAME", include, exclude);

            if (!String.IsNullOrEmpty(extFilter))
            {
                extFilter = " AND " + extFilter;
            }

            //查询语句
            cmd.CommandText =
                @"
--DECLARE :ExtYear int;
--DECLARE :ProcessName nvarchar(50);
--SELECT :ExtYear=2015;

WITH A AS(
	SELECT to_number(to_char(CreateAt,'MM')) Month,ProcessName,State,GREATEST(ROUND(TO_NUMBER(FinishAt-CreateAt) * 24 * 60),0) Minutes FROM BPMInstTasks WHERE ExtYear=:ExtYear"     + extFilter + @"
),
AA AS(
	SELECT State,Month,Count(*) Counts,avg(Minutes) AvgMinutes FROM A GROUP BY State,Month
),
B AS(
	SELECT Month,
	max(case when State='Approved' then Counts else 0 end) Approved,
	max(case when State='Rejected' then Counts else 0 end) Rejected,
	max(case when State='Running' then Counts else 0 end) Running,
	max(case when State='Aborted' then Counts else 0 end) Aborted,
	max(case when State='Deleted' then Counts else 0 end) Deleted,
	nvl(sum(Counts),0) Total,
	max(case when State='Approved' then AvgMinutes else 0 end) AvgMinutes
	FROM AA GROUP BY Month
),
C AS(
	SELECT rownum Month from dual connect by rownum <=12
),
D AS(
	SELECT C.Month,
	nvl(B.Approved,0) Approved,
	nvl(B.Rejected,0) Rejected,
	nvl(B.Running,0) Running,
	nvl(B.Aborted,0) Aborted,
	nvl(B.Deleted,0) Deleted,
	nvl(B.Total,0) Total,
	nvl(B.AvgMinutes,0) AvgMinutes
	FROM C LEFT JOIN B ON C.Month=B.Month
)
SELECT * FROM D ORDER BY Month
";

            cmd.Parameters.Add(":ExtYear", OracleDbType.Int32).Value = year;
            return(cmd.ExecuteReader());
        }
Example #20
0
        public IDataReader GetProcessUsageKPI(IDbConnection cn, int year, int month, BPMObjectNameCollection include, BPMObjectNameCollection exclude)
        {
            //Command
            OracleCommand cmd = new OracleCommand();

            cmd.Connection = cn as OracleConnection;
            cmd.BindByName = true;

            //in过滤
            string extFilter = this.GetFilter(cmd, "ProcessName", include, exclude);

            if (!String.IsNullOrEmpty(extFilter))
            {
                extFilter = " AND " + extFilter;
            }

            //查询语句
            cmd.CommandText =
                @"
--DECLARE :ExtYear int;
--DECLARE :Month int;
--SELECT :ExtYear=2015;
----SELECT :Month=2;

WITH A AS(
	SELECT ProcessName,State FROM BPMInstTasks WHERE ExtYear=:ExtYear AND (:Month IS NULL OR to_number(to_char(CreateAt,'MM'))=:Month)"     + extFilter + @"
),
B AS
(
	SELECT :ExtYear ExtYear,State,Count(*) Counts FROM A GROUP BY State
),
C AS(
	SELECT ExtYear,
	max(case when State='Approved' then Counts else 0 end) Approved,
	max(case when State='Rejected' then Counts else 0 end) Rejected,
	max(case when State='Running' then Counts else 0 end) Running,
	max(case when State='Aborted' then Counts else 0 end) Aborted,
	max(case when State='Deleted' then Counts else 0 end) Deleted,
	nvl(sum(Counts),0) Total
	FROM B GROUP BY ExtYear
),
D AS(
	SELECT nvl(count(DISTINCT ProcessName),0) ProcessCount FROM A
)
SELECT C.*,D.* FROM C,D
";

            cmd.Parameters.Add(":ExtYear", OracleDbType.Int32).Value = year;

            if (month == -1)
            {
                cmd.Parameters.Add(":Month", OracleDbType.Int32).Value = DBNull.Value;
            }
            else
            {
                cmd.Parameters.Add(":Month", OracleDbType.Int32).Value = month + 1;
            }

            return(cmd.ExecuteReader());
        }
Example #21
0
        public virtual JObject Remind(HttpContext context)
        {
            YZRequest      request  = new YZRequest(context);
            JObject        jPost    = request.GetPostData <JObject>();
            string         comments = (string)jPost["comments"];
            JArray         jTargets = (JArray)jPost["targets"];
            UserCollection users    = new UserCollection();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                foreach (JObject jTarget in jTargets)
                {
                    int stepid = (int)jTarget["stepid"];
                    BPMObjectNameCollection uids = jTarget["uids"].ToObject <BPMObjectNameCollection>();
                    users.Append(BPMProcStep.Remind(cn, stepid, uids, comments));
                }
            }

            JObject rv = new JObject();

            rv[YZJsonProperty.success] = true;
            rv["UserNameList"]         = YZStringHelper.GetUserNameListString(users);

            return(rv);
        }
Example #22
0
        public virtual JObject CheckPermisions(HttpContext context)
        {
            YZRequest request             = new YZRequest(context);
            string    rsid                = request.GetString("rsid");
            string    strPerms            = request.GetString("perms", null);
            BPMObjectNameCollection perms = BPMObjectNameCollection.FromStringList(strPerms, ',');

            JObject rv = new JObject();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                ACL acl = SecurityManager.GetACL(cn, rsid);

                foreach (string strPerm in perms)
                {
                    BPMPermision perm;
                    if (Enum.TryParse <BPMPermision>(strPerm, out perm))
                    {
                        rv[strPerm] = acl.HasPermision(cn.Token, perm);
                    }
                }
            }

            return(rv);
        }
Example #23
0
        public virtual JArray MemberFromUIDs(HttpContext context)
        {
            YZRequest request            = new YZRequest(context);
            JArray    jPost              = request.GetPostData <JArray>();
            BPMObjectNameCollection uids = jPost.ToObject <BPMObjectNameCollection>();
            JArray rv = new JArray();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                foreach (string uid in uids)
                {
                    User user = User.TryGetUser(cn, uid);

                    //已删除和禁用的用户不显示
                    if (user == null || user.Disabled)
                    {
                        continue;
                    }

                    Member member = OrgSvr.TryGetMemberFromAccount(cn, user.Account);
                    if (member == null)
                    {
                        member = new Member();
                    }

                    rv.Add(this.Serialize(member, user));
                }
            }

            return(rv);
        }
        public virtual object RelationshipAppGetRelatited(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    fileid  = request.GetString("fileid");
            BPMObjectNameCollection spriteids   = JArray.Parse(request.GetString("spriteids")).ToObject <BPMObjectNameCollection>();
            BPMObjectNameCollection tagfiletype = JArray.Parse(request.GetString("tagfiletype")).ToObject <BPMObjectNameCollection>();
            JArray rv = new JArray();

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    File file = File.Load(provider, cn, fileid);

                    this.AddReference(provider, cn, file, null, file.Property.Owner, tagfiletype, rv);
                    foreach (Sprite sprite in file.Sprites.SortByOrder())
                    {
                        if (spriteids.Count != 0 && !spriteids.Contains(sprite.Id))
                        {
                            continue;
                        }

                        this.AddReference(provider, cn, file, sprite, sprite.AllReferences, tagfiletype, rv);
                    }

                    return(rv);
                }
            }
        }
Example #25
0
        public virtual JObject GetAllProcessNames(HttpContext context)
        {
            YZRequest request   = new YZRequest(context);
            string    bpmServer = request.GetString("bpmServer", null);
            BPMObjectNameCollection processNames = new BPMObjectNameCollection();

            using (BPMConnection cn = new BPMConnection())
            {
                this.OpenConnection(cn, bpmServer);
                processNames = ProcessNameManager.GetProcessNames(cn);
            }

            //将数据转化为Json集合
            JObject rv = new JObject();

            rv[YZJsonProperty.total] = processNames.Count;
            JArray children = new JArray();

            rv[YZJsonProperty.children] = children;

            foreach (string processName in processNames)
            {
                JObject item = new JObject();
                children.Add(item);
                item["ProcessName"] = processName;
            }

            //输出数据
            rv[YZJsonProperty.success] = true;
            return(rv);
        }
Example #26
0
        public static OSFileInfoCollection GetFiles(string folderPath, BPMObjectNameCollection excludes)
        {
            DirectoryInfo folder = new DirectoryInfo(folderPath);

            FileInfo[] files = folder.GetFiles("*.*");

            OSFileInfoCollection rv = new OSFileInfoCollection();

            foreach (FileInfo fileInfo in files)
            {
                if ((fileInfo.Attributes & FileAttributes.Directory) == 0 &&
                    (fileInfo.Attributes & FileAttributes.System) == 0 &&
                    (fileInfo.Attributes & FileAttributes.Hidden) == 0)
                {
                    if (NameCompare.Equals(fileInfo.Extension, ".extension"))
                    {
                        continue;
                    }

                    if (excludes.Contains(fileInfo.Extension))
                    {
                        continue;
                    }

                    rv.Add(new OSFileInfo(fileInfo));
                }
            }

            rv.Sort();
            return(rv);
        }
Example #27
0
        public IDataReader GetProcessAnalysisTrend(IDbConnection cn, int year, BPMObjectNameCollection include, BPMObjectNameCollection exclude)
        {
            //Command
            SqlCommand cmd = new SqlCommand();

            cmd.Connection = cn as SqlConnection;

            //in过滤
            string extFilter = this.GetFilter(cmd, "ProcessName", include, exclude);

            if (!String.IsNullOrEmpty(extFilter))
            {
                extFilter = " AND " + extFilter;
            }

            //查询语句
            cmd.CommandText =
                @"
--DECLARE @ExtYear int;
--DECLARE @ProcessName nvarchar(50);
--SELECT @ExtYear=2015;

WITH A AS(
	SELECT Month(CreateAt) [Month],ProcessName,State,DATEDIFF(mi,CreateAt,FinishAt) Minutes FROM BPMInstTasks WHERE ExtYear=@ExtYear"     + extFilter + @"
),
AA AS(
	SELECT State,[Month],Count(*) Counts,avg(Minutes) AvgMinutes FROM A GROUP BY State,[Month]
),
B AS(
	SELECT [Month],
	max(case when State='Approved' then Counts else 0 end) Approved,
	max(case when State='Rejected' then Counts else 0 end) Rejected,
	max(case when State='Running' then Counts else 0 end) Running,
	max(case when State='Aborted' then Counts else 0 end) Aborted,
	max(case when State='Deleted' then Counts else 0 end) Deleted,
	ISNULL(sum(Counts),0) Total,
	max(case when State='Approved' then AvgMinutes else 0 end) AvgMinutes
	FROM AA GROUP BY [Month]
),
C AS(
	SELECT number [Month] FROM MASTER..spt_values WHERE type='P' and number between 1 and 12
),
D AS(
	SELECT C.[Month],
	ISNULL(B.Approved,0) Approved,
	ISNULL(B.Rejected,0) Rejected,
	ISNULL(B.Running,0) Running,
	ISNULL(B.Aborted,0) Aborted,
	ISNULL(B.Deleted,0) Deleted,
	ISNULL(B.Total,0) Total,
	ISNULL(B.AvgMinutes,0) AvgMinutes
	FROM C LEFT JOIN B ON C.[Month]=B.[Month]
)
SELECT * FROM D ORDER BY [Month]
";

            cmd.Parameters.Add("@ExtYear", SqlDbType.Int).Value = year;
            return(cmd.ExecuteReader());
        }
Example #28
0
        public string GetDBInString(BPMObjectNameCollection strs)
        {
            if (strs == null)
            {
                return(null);
            }

            return(this.GetDBInString(strs.ToArray()));
        }
Example #29
0
        public IDataReader GetDeletedObjects(IDbConnection cn, BPMObjectNameCollection libTypes, string deletedBy)
        {
            using (OracleCommand cmd = new OracleCommand())
            {
                cmd.Connection = cn as OracleConnection;
                cmd.BindByName = true;

                //查询条件
                string libFilter = null;
                for (int i = 0; i < libTypes.Count; i++)
                {
                    string paramName = ":LibType" + i.ToString();
                    string libType   = libTypes[i];

                    libFilter = this.CombinCondOR(libFilter, String.Format("LibType = {0}", paramName));
                    cmd.Parameters.Add(paramName, OracleDbType.NVarchar2).Value = libType;
                }

                if (!String.IsNullOrEmpty(libFilter))
                {
                    libFilter = " WHERE " + libFilter;
                }

                cmd.CommandText = String.Format(@"
WITH A AS(
	SELECT * FROM YZV_RootFolders {0}
),
FA AS(
	SELECT * FROM YZAppFolderFiles WHERE Recyclebin=1 AND (:DeleteBy IS NULL OR DeleteBy=:DeleteBy)
),
FB AS(
	SELECT YZAppFolders.RootID,FA.* FROM FA,YZAppFolders WHERE FA.FolderID = YZAppFolders.FolderID
),
FC AS(
	SELECT A.*,FB.* FROM A,FB WHERE A.RootFolderID=FB.RootID
),
FD AS(
	SELECT FC.LibID,FC.LibType,FC.LibName,FC.LibDesc,FC.DeleteBy,FC.DeleteAt,YZDirectoryGetPath(FC.FolderID) as Path,null as FolderID,YZAppAttachment."     + "\"NAME\"" + @",FC." + "\"ID\"" + @",FC.FileID,YZAppAttachment.Ext,YZAppAttachment." + "\"SIZE\"" + @" FROM FC,YZAppAttachment WHERE FC.FileID=YZAppAttachment.FileID
),
FDA AS(
	SELECT * FROM YZAppFolders WHERE Recyclebin=1 AND (:DeleteBy IS NULL OR DeleteBy=:DeleteBy)
),
FDB AS(
	SELECT A.LibID,A.LibType,A.LibName,A.LibDesc,FDA.DeleteBy,FDA.DeleteAt,YZDirectoryGetPath(FDA.ParentID) as Path,FDA.FolderID,FDA."     + "\"NAME\"" + @",null as " + "\"ID\"" + @",null as FileID,null as Ext,null as " + "\"SIZE\"" + @" FROM A,FDA WHERE A.RootFolderID=FDA.RootID
),
Z AS(
	SELECT * FROM FD UNION SELECT * FROM FDB
)
SELECT * FROM Z Order BY DeleteAt desc
", libFilter);

                //查询条件
                cmd.Parameters.Add(":DeleteBy", OracleDbType.NVarchar2).Value = this.Convert(deletedBy, true);

                return(cmd.ExecuteReader());
            }
        }
Example #30
0
        public virtual object GetTeamReports(HttpContext context)
        {
            YZRequest request   = new YZRequest(context);
            string    myaccount = request.GetString("account", YZAuthHelper.LoginUserAccount);
            DateTime  date      = request.GetDateTime("date");

            BPMObjectNameCollection accounts = new BPMObjectNameCollection();

            accounts.Add(myaccount);

            using (BPMConnection bpmcn = new BPMConnection())
            {
                bpmcn.WebOpen();

                MemberCollection positions = OrgSvr.GetUserPositions(bpmcn, myaccount);
                foreach (Member position in positions)
                {
                    DirectXSCollection xss = position.GetDirectXSs(bpmcn);
                    foreach (DirectXS xs in xss)
                    {
                        if (!accounts.Contains(xs.UserAccount))
                        {
                            accounts.Add(xs.UserAccount);
                        }
                    }
                }

                DailyReportCollection rv = new DailyReportCollection();
                foreach (string account in accounts)
                {
                    DailyReport dailyReport;

                    using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
                    {
                        using (IDbConnection cn = provider.OpenConnection())
                        {
                            dailyReport = DailyReportManager.TryGetReport(provider, cn, account, date);

                            if (dailyReport == null)
                            {
                                dailyReport         = new DailyReport();
                                dailyReport.Account = account;
                                dailyReport.Date    = date;
                            }

                            rv.Add(dailyReport);
                        }
                    }

                    User user = User.TryGetUser(bpmcn, account);
                    dailyReport["ShortName"] = user == null ? "" : user.ShortName;
                }

                return(rv);
            }
        }
Example #31
0
        public string GetDBInString(BPMObjectNameCollection sids, string uid)
        {
            if (sids == null)
                return null;

            BPMObjectNameCollection lsids = new BPMObjectNameCollection();
            sids.CopyTo(lsids);
            lsids.Add(uid);

            return this.GetDBInString(lsids);
        }
Example #32
0
        public string GetDBInString(BPMObjectNameCollection strs)
        {
            if (strs == null)
                return null;

            return this.GetDBInString(strs.ToArray());
        }
Example #33
0
        public virtual IDbCommand GetTaskCommunicationListCommand(IDbConnection cn, string uid, BPMObjectNameCollection sids, string taskTableFilter, string messageTableFilter, int start, int limit)
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.Connection = cn as SqlConnection;

                string filter = null;

                if (!String.IsNullOrEmpty(messageTableFilter))
                filter = String.Format("TaskID IN(SELECT DISTINCT TaskID FROM B WHERE {0})",messageTableFilter);

                filter = this.CombinCondOR(filter, taskTableFilter);

                if (!String.IsNullOrEmpty(filter))
                    filter = "WHERE " + filter;

                StringBuilder sb = new StringBuilder();
                sb.AppendLine("WITH A AS(SELECT M.* FROM YZV_TaskCommunicationRead M WHERE uid=@uid),");
                sb.AppendLine("B AS(SELECT M.*,A.uid as ruid,isnull(A.readId,0) as readId FROM YZV_TaskCommunication M LEFT JOIN A ON M.TaskID=A.TaskID),");
                sb.AppendLine("C1 AS(SELECT sum(case when id>readId then 1 else 0 end) count,count(*) total,max(id) as lastMsgId FROM B GROUP BY TaskID),");
                sb.AppendLine("C AS(SELECT B.*,C1.* FROM C1 INNER JOIN B ON C1.lastMsgId=B.id),");
                //sb.AppendLine("B AS(SELECT M.*,A.uid as ruid FROM YZV_TaskCommunication M LEFT JOIN A ON M.TaskID=A.TaskID WHERE M.id>isnull(A.readId,0)),");
                //sb.AppendLine("C AS(SELECT TaskID,count(*) count FROM B GROUP BY TaskID),");
                sb.AppendLine("D AS(SELECT * FROM C WHERE TaskID IN(SELECT TaskID FROM YZV_TaskAccess WHERE SID IN({0}))),");
                sb.AppendLine("E AS(SELECT D.*,SerialNum,ProcessName,OwnerAccount,AgentAccount,CreateAt,Description,State FROM D INNER JOIN BPMInstTasks M ON D.TaskID=M.TaskID),");
                sb.AppendLine("F AS(SELECT * FROM E {1}),");
                sb.AppendLine("X AS(SELECT *,ROW_NUMBER() OVER(ORDER BY id DESC) AS RowNum FROM F),");
                sb.AppendLine("Y AS(SELECT count(*) AS TotalRows FROM X),");
                sb.AppendLine("Z AS(SELECT X.*,Y.TotalRows FROM Y,X)");
                sb.AppendLine("SELECT * FROM Z WHERE RowNum = 1 OR RowNum BETWEEN @StartRowIndex AND @EndRowIndex ORDER BY RowNum");
                cmd.CommandText = String.Format(sb.ToString(), this.GetDBInString(sids, uid), filter);

                cmd.Parameters.Add("@uid", SqlDbType.NVarChar).Value = uid;
                cmd.Parameters.Add("@StartRowIndex", SqlDbType.Int).Value = start + 1;
                cmd.Parameters.Add("@EndRowIndex", SqlDbType.Int).Value = start + limit;

                return cmd;
            }
        }
Example #34
0
    public static string GetUserNameListString(StepRecipientCollection recps)
    {
        BPMObjectNameCollection names = new BPMObjectNameCollection();
        foreach (StepRecipient recp in recps)
            names.Add(YZStringHelper.GetRecpientDisplayName(recp));

        return names.ToStringList(';');
    }
Example #35
0
    public static string GetUserShortNameListString(UserCollection users)
    {
        BPMObjectNameCollection names = new BPMObjectNameCollection();
        foreach (User user in users)
            names.Add(YZStringHelper.GetUserShortName(user.Account, user.DisplayName));

        return names.ToStringList(';');
    }
Example #36
0
    public static void ApplayRecordPermision(BPMConnection cn, JsonItemCollection items,string rsid, string tableName,string jsonitemKeyAttrName)
    {
        //获得资源上的记录级权限种类
        UserResourcePermisionCollection resourcePerms = UserResourceSecurityManager.GetResourcePermisions(cn, rsid);
        BPMObjectNameCollection permNames = new BPMObjectNameCollection();
        foreach (UserResourcePermision resourcePerm in resourcePerms)
        {
            if (resourcePerm.PermType == UserResourcePermisionType.Record)
                permNames.Add(resourcePerm.PermName);
        }

        //应用权限
        foreach(JsonItem item in items)
        {
            string key = Convert.ToString(item.Attributes[jsonitemKeyAttrName]);
            bool[] rv = RecordSecurityManager.CheckPermision(cn, tableName, key, permNames);

            JsonItem jsonPerm = new JsonItem();
            item.Attributes["perm"] = jsonPerm;
            for (int i = 0; i < permNames.Count; i++)
                jsonPerm.Attributes[permNames[i]] = rv[i];
        }
    }
Example #37
0
    public static void ApplayPermision(BPMConnection cn, JsonItemCollection items)
    {
        for(int moduleIndex = 0; moduleIndex < items.Count ; moduleIndex++)
        {
            JsonItem item = items[moduleIndex];
            bool moduleExecute = true;
             
            if (item.Attributes.ContainsKey("modulePerm"))
            {
                YZModulePermision perm = item.Attributes["modulePerm"] as YZModulePermision;
                item.Attributes.Remove("modulePerm");

                //检查模块权限
                moduleExecute = UserResourceSecurityManager.CheckPermision(cn, perm.RSID, "Execute");

                if (moduleExecute)
                {
                    //获得模块config配置项
                    JsonItem config = null;
                    if (item.Attributes.ContainsKey("config"))
                        config = item.Attributes["config"] as JsonItem;
                    else
                    {
                        config = new JsonItem();
                        item.Attributes["config"] = config;
                    }

                    //在config配置项下建perm配置
                    JsonItem jsonPerm = new JsonItem();
                    config.Attributes["perm"] = jsonPerm;

                    //记录模块rsid
                    jsonPerm.Attributes["rsid"] = perm.RSID;

                    //生成工具条上的访问权限
                    if (perm.GenToolbarPermision)
                    {
                        //获得工具条上的模块级权限种类
                        UserResourcePermisionCollection resourcePerms = UserResourceSecurityManager.GetResourcePermisions(cn, perm.RSID);
                        BPMObjectNameCollection permNames = new BPMObjectNameCollection();
                        foreach (UserResourcePermision resourcePerm in resourcePerms)
                        {
                            if (resourcePerm.PermType == UserResourcePermisionType.Module)
                                permNames.Add(resourcePerm.PermName);
                        }

                        //记录工具条上的模块级权限许可情况
                        bool[] rv = UserResourceSecurityManager.CheckPermision(cn, perm.RSID, permNames);
                        for (int i = 0; i < permNames.Count; i++)
                            jsonPerm.Attributes[permNames[i]] = rv[i];
                    }
                }
                else
                {
                    items.RemoveAt(moduleIndex);
                    moduleIndex--;
                }
            }

            //此模块可见则检查子级
            if (moduleExecute)
            {
                if (item.Attributes.ContainsKey("children"))
                {
                    JsonItemCollection children = item.Attributes["children"] as JsonItemCollection;
                    if (children != null)
                    {
                        int allCount = children.Count;
                        ApplayPermision(cn, children);

                        if (allCount != 0 && children.Count == 0)
                        {
                            //item.Attributes["empty"] = true;
                            items.RemoveAt(moduleIndex);
                            moduleIndex--;
                            continue;
                        }
                    }
                }

                if (item.Attributes.ContainsKey("tabs"))
                {
                    JsonItemCollection tabs = item.Attributes["tabs"] as JsonItemCollection;
                    if (tabs != null)
                    {
                        int allCount = tabs.Count;
                        ApplayPermision(cn, tabs);

                        if (allCount != 0 && tabs.Count == 0)
                        {
                            //item.Attributes["empty"] = true;
                            items.RemoveAt(moduleIndex);
                            moduleIndex--;
                            continue;
                        }
                    }
                }
            }
        }
    }
Example #38
0
        public virtual int GetTaskCommunicationNewMessageCount(IDbConnection cn, string uid, BPMObjectNameCollection sids)
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.Connection = cn as SqlConnection;

                StringBuilder sb = new StringBuilder();
                sb.AppendLine("WITH A AS(SELECT M.* FROM YZV_TaskCommunicationRead M WHERE uid=@uid),");
                sb.AppendLine("B AS(SELECT M.*,A.uid as ruid,isnull(A.readId,0) readId FROM YZV_TaskCommunication M LEFT JOIN A ON M.TaskID=A.TaskID WHERE M.id>isnull(A.readId,0)),");
                sb.AppendLine("C AS(SELECT TaskID,count(*) count FROM B GROUP BY TaskID),");
                sb.AppendLine(String.Format("D AS(SELECT * FROM C WHERE TaskID IN(SELECT TaskID FROM YZV_TaskAccess WHERE SID IN({0})))", this.GetDBInString(sids, uid)));
                sb.AppendLine("SELECT ISNULL(sum(count),0) as count FROM D");

                cmd.CommandText = sb.ToString();

                cmd.Parameters.Add("@uid", SqlDbType.NVarChar).Value = uid;

                return Convert.ToInt32(this.ExecuteScalar(cmd));
            }
        }
Example #39
0
    public static string GetTaskStateDisplayString(BPMConnection cn, TaskState state, int taskid)
    {
        if (state != TaskState.Running)
            return YZStringHelper.GetTaskStateDisplayName(state);

        Dictionary<string, BPMObjectNameCollection> results = new Dictionary<string, BPMObjectNameCollection>();
        BPMStepCollection steps = BPMTask.GetInProcessSteps(cn, taskid);

        foreach (BPMProcStep step in steps)
        {
            string stepName = step.StepDisplayName;
            if(step.Share && String.IsNullOrEmpty(step.RecipientAccount))
                stepName = stepName + "(等待获取)";

            BPMObjectNameCollection users = null;
            if (results.ContainsKey(stepName))
            {
                users = results[stepName];
            }
            else
            {
                users = new BPMObjectNameCollection();
                results.Add(stepName, users);
            }

            string userName = YZStringHelper.GetUserShortName(step.RecipientAccount,step.RecipientFullName);

            if (!String.IsNullOrEmpty(userName) && !users.Contains(userName))
                users.Add(userName);
        }

        List<string> rvs = new List<string>();
        foreach (KeyValuePair<string, BPMObjectNameCollection> kv in results)
        {
            string users = String.Join(",",kv.Value.ToArray());
            if (String.IsNullOrEmpty(users))
                rvs.Add(kv.Key);
            else
                rvs.Add(String.Format("{0}:{1}",kv.Key,users));
        }

        return String.Join(";",rvs.ToArray());
    }