Ejemplo n.º 1
0
        /// <summary>
        /// Get previous StatusId for current RolesId
        /// </summary>
        /// <param name="rolesId">The roles id.</param>
        /// <param name="currentStatus">The current status.</param>
        /// <returns></returns>
        public static int GetPrevStatus(string[] rolesId, int currentStatus)
        {
            int curStatus = currentStatus;

            while (true)
            {
                //while not last
                while (curStatus != -1)
                {
                    curStatus = WorkflowStatus.GetPrevious(curStatus);
                    //foreach Role
                    foreach (string roleId in rolesId)
                    {
                        using (IDataReader reader = LoadByRoleIdStatusId(roleId, curStatus))
                        {
                            if (reader.Read())
                            {
                                reader.Close();
                                return(curStatus);
                            }

                            reader.Close();
                        }
                    }
                }
                if (curStatus == -1)
                {
                    return(-1);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get highest StatusId for current RolesId
        /// </summary>
        /// <param name="rolesId">The roles id.</param>
        /// <param name="lastStatus">The last status.</param>
        /// <returns></returns>
        public static int GetMaxStatus(string[] rolesId, int lastStatus)
        {
            int curStatus = lastStatus;

            while (true)
            {
                foreach (string roleId in rolesId)
                {
                    using (IDataReader reader = LoadByRoleIdStatusId(roleId, curStatus))
                    {
                        if (reader.Read())
                        {
                            reader.Close();
                            return(curStatus);
                        }

                        reader.Close();
                    }
                }
                curStatus = WorkflowStatus.GetPrevious(curStatus);
                if (curStatus == -1)
                {
                    return(-1);
                }
            }
        }