Exemple #1
0
        /// <summary>
        /// Metodo per l'esecuzione della fase corrente, per l'analisi del
        /// risultato ottenuto, per l'aggiornamento del report e per l'eventuale
        /// aggiunta di una nuova riga di wait relativa alla prossima fase con conseguente
        /// aggiornamento della request
        /// </summary>
        /// <returns>Esito dell'operazione</returns>
        private SaveChangesToRoleReportResult ExecuteCurrentPhase()
        {
            // Esecuzione azione
            SaveChangesToRoleResponse response = OrgManager.SaveChangesToRole(SaveChangesRequest);

            // Analisi risultato e aggiornamento del report
            this.CloseReportVoice(this.AnalyzeResult(response.Result.Codice), response.Result.Descrizione);

            // Aggiornamento request
            SaveChangesRequest.IdOldRole         = response.IdOldRole;
            SaveChangesRequest.IdCorrGlobOldRole = response.IdCorrGlobOldRole;
            SaveChangesRequest.Users             = response.Users;
            SaveChangesRequest.ModifiedRole      = response.ModifiedRole;
            SaveChangesRequest.ComputeAtipicita  = response.ComputeAtipicita;
            MessageToShow = response.MessageToShowToAdministrator;
            SaveChangesRequest.IdOldRoleType = response.IdOldRoleType;
            SaveChangesRequest.IdOldUO       = response.IdOldUO;

            // Aggiunta di una nuova voce al report solo se il risultato dell'azione corrente non è KO
            if (this.AnalyzeResult(response.Result.Codice) != SaveChangesToRoleReportResult.KO)
            {
                this.AddNewReportRow();
            }

            SaveChangesRequest.Phase = response.NextPhase;

            return(this.AnalyzeResult(response.Result.Codice));
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void gcProcessInstance_RowDataBound(object sender, GridViewRowEventArgs e)
 {
     try
     {
         if (e.Row.RowType == DataControlRowType.DataRow)
         {
             LinkButton btnCanExec  = e.Row.FindControl("btnCanExec")  as LinkButton;
             LinkButton btnComplete = e.Row.FindControl("btnComplete") as LinkButton;
             LinkButton btnView     = e.Row.FindControl("btnView") as LinkButton;
             if (e.Row.DataItem != null)
             {
                 int    state        = DataBinder.Eval(e.Row.DataItem, "State") == null ? -1 : Int32.Parse(DataBinder.Eval(e.Row.DataItem, "State").ToString());
                 int    createUserId = DataBinder.Eval(e.Row.DataItem, "CreateUserId") == null ? -1 : Int32.Parse(DataBinder.Eval(e.Row.DataItem, "CreateUserId").ToString());
                 string record       = DataBinder.Eval(e.Row.DataItem, "OperationRecord") == null ? string.Empty : DataBinder.Eval(e.Row.DataItem, "OperationRecord").ToString();
                 if (createUserId > 0)
                 {
                     gcProcessInstance.SetRowText(e.Row, "CreateUserId", OrgManager.GetDisplayValue("T_User", createUserId));
                 }
                 if (state > 0)
                 {
                     gcProcessInstance.SetRowText(e.Row, "State", EnumHelper.GetDescription(typeof(OperationErrorLogStateEnum), state));
                     if (state == (int)OperationErrorLogStateEnum.CanExec)
                     {
                         if (btnCanExec != null)
                         {
                             btnCanExec.Visible = false;
                         }
                     }
                     if (state == (int)OperationErrorLogStateEnum.Finish)
                     {
                         if (btnCanExec != null)
                         {
                             btnCanExec.Visible = false;
                         }
                         if (btnComplete != null)
                         {
                             btnComplete.Visible = false;
                         }
                     }
                 }
                 if (record.Length > 30)
                 {
                     if (btnView != null)
                     {
                         btnView.Text    = record.Substring(0, 30) + "...";
                         btnView.ToolTip = record;
                     }
                     gcProcessInstance.SetRowText(e.Row, "OperationRecord", record.Substring(0, 30) + "...");
                     //e.Row.ToolTip = record;
                 }
             }
         }
     }
     catch (ApplicationException ex)
     {
         this.AjaxAlert(ex.Message);
     }
 }
Exemple #3
0
        /// <summary>
        /// Metodo per l'inizializzazione del report
        /// </summary>
        private void InitializeReport()
        {
            // Aggiunta della voce di inizializzazione
            this.AddNewReportRow();

            // Passaggio allo stato successivo
            SaveChangesToRoleResponse response = OrgManager.SaveChangesToRole(SaveChangesRequest);

            SaveChangesRequest.Phase = response.NextPhase;
        }
Exemple #4
0
        public virtual object GetEmployeeInfo(HttpContext context)
        {
            YZRequest request             = new YZRequest(context);
            string    account             = request.GetString("account");
            bool      includeDisabledUser = request.GetBool("includeDisabledUser", false);

            User          user;
            List <object> rvPositions = new List <object>();
            List <object> supervisors = new List <object>();
            List <object> directXSs   = new List <object>();
            List <object> roles       = new List <object>();

            object[] groups;

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

                user = User.FromAccount(cn, account);

                MemberCollection positions = OrgSvr.GetUserPositions(cn, account);
                foreach (Member member in positions)
                {
                    rvPositions.Add(
                        new
                    {
                        ou          = member.GetParentOU(cn).GetFriendlyFullName(cn),
                        LeaderTitle = member.LeaderTitle,
                        Level       = member.Level
                    }
                        );

                    supervisors.AddRange(OrgManager.GetSupervisors(cn, member.FullName, includeDisabledUser));
                    directXSs.AddRange(OrgManager.GetDirectXSs(cn, member.FullName, includeDisabledUser));
                    roles.AddRange(OrgManager.GetRoles(cn, member.FullName));
                }

                groups = OrgManager.GetGroups(cn, account);
            }

            return(new {
                user = user,
                positions = rvPositions,
                supervisors = supervisors,
                directxss = directXSs,
                roles = roles,
                groups = groups
            });
        }
Exemple #5
0
        public static string GetAllAppId(string sid)
        {
            string appid = "";

            if (string.IsNullOrEmpty(sid))
            {
                using (BPMConnection cn = new BPMConnection())
                {
                    cn.WebOpen();
                    object[]  groups = OrgManager.GetGroups(cn, YZAuthHelper.LoginUserAccount);
                    ArrayList al     = (ArrayList)JSON.Decode(JsonConvert.SerializeObject(groups));
                    for (int i = 0; i < al.Count; i++)
                    {
                        Hashtable ht   = (Hashtable)al[i];
                        string    sids = Convert.ToString(ht["SID"]);

                        DataTable dt = DBUtil_APP.Query("select APPID from  APP_APPAUTH where sid=" + sids + "").Tables[0];
                        for (int j = 0; j < dt.Rows.Count; j++)
                        {
                            appid += "'" + dt.Rows[j][0] + "',";
                        }
                    }
                    DataTable dtt = DBUtil_APP.Query("select APPID from  APP_APPAUTH where sid='S_GS_90674E5E-AC3C-4032-9EDF-7477F2247542'").Tables[0];
                    for (int j = 0; j < dtt.Rows.Count; j++)
                    {
                        appid += "'" + dtt.Rows[j][0] + "',";
                    }
                }
            }
            else
            {
                DataTable dt = DBUtil_APP.Query("select APPID from  APP_APPAUTH where sid=" + sid + "").Tables[0];
                for (int j = 0; j < dt.Rows.Count; j++)
                {
                    appid += "'" + dt.Rows[j][0] + "',";
                }
            }
            if (!string.IsNullOrEmpty(appid))
            {
                return(appid.Trim(','));
            }
            else
            {
                return("'-1'");
            }
        }
Exemple #6
0
        public virtual object GetLoginUserOrgRelationship(HttpContext context)
        {
            string account = YZAuthHelper.LoginUserAccount;

            List <object> rvPositions = new List <object>();
            List <object> supervisors = new List <object>();
            List <object> directXSs   = new List <object>();
            List <object> roles       = new List <object>();

            object[] groups;

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

                MemberCollection positions = OrgSvr.GetUserPositions(cn, account);
                foreach (Member member in positions)
                {
                    rvPositions.Add(
                        new
                    {
                        ou          = member.GetParentOU(cn).GetFriendlyFullName(cn),
                        LeaderTitle = member.LeaderTitle,
                        Level       = member.Level
                    }
                        );

                    supervisors.AddRange(OrgManager.GetSupervisors(cn, member.FullName, false));
                    directXSs.AddRange(OrgManager.GetDirectXSs(cn, member.FullName, false));
                    roles.AddRange(OrgManager.GetRoles(cn, member.FullName));
                }

                groups = OrgManager.GetGroups(cn, account);
            }

            return(new {
                success = true,
                positions = rvPositions,
                supervisors = supervisors,
                directxss = directXSs,
                roles = roles,
                groups = groups
            });
        }
        /// <summary>
        /// 加载数据
        /// </summary>
        void LoadData()
        {
            string id = Request.QueryString["id"];

            if (!string.IsNullOrEmpty(id))
            {
                int piid = int.Parse(id);
                using (DrisionDbContext context = new DrisionDbContext(GlobalObject.ConnString))
                {
                    T_MobileOperationErrorLog log = context.T_MobileOperationErrorLog.FirstOrDefault(p => p.Id == piid);
                    if (log != null)
                    {
                        lblCreateUserId.Text    = log.CreateUserId.HasValue?OrgManager.GetDisplayValue("T_User", log.CreateUserId.Value):string.Empty;
                        lblCreateTime.Text      = log.CreateTime.HasValue ? log.CreateTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : string.Empty;
                        lblOperationRecord.Text = log.OperationRecord;
                        lblState.Text           = log.State.HasValue? EnumHelper.GetDescription(typeof(OperationErrorLogStateEnum), log.State.Value):string.Empty;
                    }
                }
            }
        }
Exemple #8
0
        protected virtual JObject SerializeOUObject(BPMConnection cn, Member member)
        {
            User user = User.TryGetUser(cn, member.UserAccount);

            if (user == null)
            {
                user          = new User();
                user.Account  = member.UserAccount;
                user.Disabled = true;
            }

            JObject item = new JObject();

            item["Type"]     = "Member";
            item["Name"]     = user.Account;
            item["FullName"] = member.FullName;
            item["Disabled"] = user.Disabled;

            item["IsLeader"]    = member.IsLeader;
            item["DisplayName"] = user.DisplayName;
            item["LeaderTitle"] = member.LeaderTitle;
            item["Level"]       = member.Level;
            item["Description"] = user.Description;
            item["HRID"]        = user.HRID;
            item["CostCenter"]  = user.CostCenter;
            item["OfficePhone"] = user.OfficePhone;
            item["HomePhone"]   = user.HomePhone;
            item["Mobile"]      = user.Mobile;
            item["EMail"]       = user.EMail;
            item["Supervisors"] = JArray.FromObject(OrgManager.GetSupervisors(cn, member.FullName, false));

            item["Editable"]     = member.HasPermision(BPMObjectPermision.Edit);
            item["UserEditable"] = user.HasPermision(BPMObjectPermision.Edit);

            return(item);
        }
Exemple #9
0
        public virtual void CheckUser(HttpContext context)
        {
            YZRequest     request       = new YZRequest(context);
            bool          addtoRecently = request.GetBool("addtoRecently", true);
            int           count         = request.GetInt32("Count", 0);
            List <string> uids          = new List <string>();
            List <string> members       = new List <string>();

            for (int i = 0; i < count; i++)
            {
                string uid = request.GetString("uid" + i.ToString());
                uids.Add(uid);

                string memberfullname = request.GetString("member" + i.ToString(), null);
                members.Add(memberfullname);
            }

            List <string> errUsers = new List <string>();

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

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

                    if (user.Disabled)
                    {
                        errUsers.Add(user.FriendlyName);
                    }
                }
            }

            if (errUsers.Count != 0)
            {
                throw new Exception(String.Format(Resources.YZStrings.Aspx_Contains_DisabledUser, String.Join(";", errUsers.ToArray())));
            }

            IYZDbProvider provider = YZDbProviderManager.DefaultProvider;

            using (IDbConnection cn = provider.OpenConnection())
            {
                string uid = YZAuthHelper.LoginUserAccount;
                for (int i = 0; i < members.Count; i++)
                {
                    string account        = uids[i];
                    string memberFullName = members[i];

                    if (String.IsNullOrEmpty(memberFullName))
                    {
                        continue;
                    }

                    OrgManager.AddRecentlyUser(cn, uid, account, memberFullName);
                }
            }
        }
Exemple #10
0
        /// <summary>
        /// 2013-1-5 zhumin 重写查询,提速
        /// </summary>
        private void BindGrid()
        {
            var result = from wi in this.DataHelper.Set <SysWorkItem>()
                         join ai in this.DataHelper.Set <SysActivityInstance>()
                         on wi.ActivityInstanceId equals ai.ActivityInstanceId
                         join pi in this.DataHelper.Set <SysProcessInstance>()
                         on ai.ProcessInstanceId equals pi.ProcessInstanceId
                         join p in this.DataHelper.Set <SysProcess>()
                         on pi.ProcessId equals p.ProcessId
                         //join et in this.DataHelper.Set<SysEntity>()
                         //on p.EntityId equals et.EntityId
                         where wi.OwnerId == LoginUserID &&
                         (p.ProcessStatus == (int)ProcessState.StartUsed || p.ProcessStatus == (int)ProcessState.Updated) &&
                         p.ProcessCategory != (int)ProcessCategory.FormApprove    //2013-9-13 zhumin 排除表单流程
                         orderby pi.StartTime descending
                         select new
            {
                pi.ProcessInstanceId,
                p.ProcessName,
                //et.EntityName,
                EntityName = this.EntityCache.FindById <SysEntity>(p.EntityId).EntityName,
                pi.StartTime,
                pi.EndTime,
                pi.InstanceStatus,
                pi.ObjectId,
                OwnerItemName = "",
                pi.ApproveResult,
                p.EntityId
            };
            //加上条件
            var list = result.Where(p => p.ProcessName.Contains(this.tbT_ProcessName.Text.Trim()));

            if (dtStartTime1.Text != "")
            {
                DateTime st1 = DateTime.Parse(dtStartTime1.Text);
                list = list.Where(p => p.StartTime > st1);
            }
            if (dtStartTime2.Text != "")
            {
                DateTime st2 = DateTime.Parse(dtStartTime2.Text);
                list = list.Where(p => p.StartTime < st2);
            }

            var orgManager = new OrgManager(this.DataHelper);

            if (string.IsNullOrEmpty(tbT_OwnerItemName.Text.Trim())) //不需要查询“对象”
            {
                int count = list.Count();
                this.gcProcessInstance.PagerSettings.DataCount = count;
                var source = list;
                //绑定
                if (count > this.PageIndex * this.PageSize)
                {
                    source = list.Skip(this.PageIndex * this.PageSize).Take(this.PageSize);
                }
                else
                {
                    this.PageIndex = 0;
                    this.gcProcessInstance.PagerSettings.PageIndex = 0;
                    source = list.Take(this.PageSize);
                }

                gcProcessInstance.DataSource = source.ToList().Select(p => new
                {
                    p.ProcessInstanceId,
                    p.ProcessName,
                    p.EntityName,
                    p.ObjectId,
                    OwnerItemName = orgManager.GetDisplayValue(p.EntityName, p.ObjectId),
                    p.StartTime,
                    p.EndTime,
                    p.InstanceStatus,
                    p.ApproveResult,
                    p.EntityId
                }).ToList();
                gcProcessInstance.DataBind();
            }
            else //需要查询“对象”
            {
                var tempSource = list.ToList().Select(p => new
                {
                    p.ProcessInstanceId,
                    p.ProcessName,
                    p.EntityName,
                    p.ObjectId,
                    OwnerItemName = orgManager.GetDisplayValue(p.EntityName, p.ObjectId),
                    p.StartTime,
                    p.EndTime,
                    p.InstanceStatus,
                    p.ApproveResult,
                    p.EntityId
                }).Where(p => p.OwnerItemName.Contains(tbT_OwnerItemName.Text.Trim())).ToList();

                int count = tempSource.Count;
                this.gcProcessInstance.PagerSettings.DataCount = count;
                var source = tempSource;
                //绑定
                if (count > this.PageIndex * this.PageSize)
                {
                    source = tempSource.Skip(this.PageIndex * this.PageSize).Take(this.PageSize).ToList();
                }
                else
                {
                    this.PageIndex = 0;
                    this.gcProcessInstance.PagerSettings.PageIndex = 0;
                    source = tempSource.Take(this.PageSize).ToList();
                }
                gcProcessInstance.DataSource = source;
                gcProcessInstance.DataBind();
            }
        }
Exemple #11
0
        /// <summary>
        /// 2013-1-5 zhumin 重写查询,提速
        /// </summary>
        private void BindGrid()
        {
            var result = from pi in this.DataHelper.Set <SysProcessInstance>()
                         join p in this.DataHelper.Set <SysProcess>()
                         on pi.ProcessId equals p.ProcessId
                         join u in this.DataHelper.Set <T_User>()
                         on pi.StartUserId equals u.User_ID
                         join d in this.DataHelper.Set <T_Department>()
                         on pi.StartDeptId equals d.Department_ID
                                                                               //join et in this.DataHelper.Set<SysEntity>()
                                                                               //on p.EntityId equals et.EntityId
                         where (p.ProcessStatus == (int)ProcessState.StartUsed || p.ProcessStatus == (int)ProcessState.Updated) &&
                         p.ProcessCategory != (int)ProcessCategory.FormApprove //2013-9-13 zhumin 排除表单流程
                         orderby pi.StartTime descending
                         select new
            {
                pi.ProcessInstanceId,
                p.ProcessName,
                p.ProcessType,
                //et.EntityName,
                //et.DisplayText,
                EntityName  = this.EntityCache.FindById <SysEntity>(p.EntityId).EntityName,
                DisplayText = this.EntityCache.FindById <SysEntity>(p.EntityId).DisplayText,
                pi.StartUserId,
                u.User_Name,
                pi.ObjectId,
                OwnerItemName = "",
                d.Department_Name,
                pi.StartTime,
                pi.EndTime,
                pi.InstanceStatus,
                pi.ApproveResult,
                p.EntityId
            };
            //加上条件
            var list = result.Where(p => p.ProcessName.Contains(tbT_ProcessName.Text));

            if (cbStartUser.SelectedValue != null)
            {
                int startUserId = Int32.Parse(cbStartUser.SelectedValue);
                list = list.Where(p => p.StartUserId == startUserId);
            }
            if (cbStatus.SelectedValue != null)
            {
                int stateId = Int32.Parse(cbStatus.SelectedValue);
                list = list.Where(p => p.InstanceStatus == stateId);
            }
            if (dtStartTime1.Text != "")
            {
                DateTime st1 = DateTime.Parse(dtStartTime1.Text);
                list = list.Where(p => p.StartTime > st1);
            }
            if (dtStartTime2.Text != "")
            {
                DateTime st2 = DateTime.Parse(dtStartTime2.Text);
                list = list.Where(p => p.StartTime < st2);
            }
            if (dtEndTime1.Text != "")
            {
                DateTime et1 = DateTime.Parse(dtEndTime1.Text);
                list = list.Where(p => p.EndTime > et1);
            }
            if (dtEndTime2.Text != "")
            {
                DateTime et2 = DateTime.Parse(dtEndTime2.Text);
                list = list.Where(p => p.EndTime < et2);
            }
            if (cbProcess.SelectedValue != null)
            {
                long typeid = long.Parse(cbProcess.SelectedValue);
                list = list.Where(p => p.ProcessType == typeid);
            }

            var orgManager = new OrgManager(this.DataHelper);

            if (string.IsNullOrEmpty(tbT_OwnerItemName.Text.Trim())) //不需要查询“对象”
            {
                int count = list.Count();
                this.gcProcessInstance.PagerSettings.DataCount = count;
                var source = list;
                //绑定
                if (count > this.PageIndex * this.PageSize)
                {
                    source = list.Skip(this.PageIndex * this.PageSize).Take(this.PageSize);
                }
                else
                {
                    this.PageIndex = 0;
                    this.gcProcessInstance.PagerSettings.PageIndex = 0;
                    source = list.Take(this.PageSize);
                }

                gcProcessInstance.DataSource = source.ToList().Select(p => new
                {
                    p.ProcessInstanceId,
                    p.ProcessName,
                    p.ProcessType,
                    p.EntityName,
                    p.DisplayText,
                    p.StartUserId,
                    p.User_Name,
                    p.ObjectId,
                    OwnerItemName = orgManager.GetDisplayValue(p.EntityName, p.ObjectId),
                    p.Department_Name,
                    p.StartTime,
                    p.EndTime,
                    p.InstanceStatus,
                    p.ApproveResult,
                    p.EntityId
                }).ToList();
                gcProcessInstance.DataBind();
            }
            else //需要查询“对象”
            {
                var tempSource = list.ToList().Select(p => new
                {
                    p.ProcessInstanceId,
                    p.ProcessName,
                    p.ProcessType,
                    p.EntityName,
                    p.DisplayText,
                    p.StartUserId,
                    p.User_Name,
                    p.ObjectId,
                    OwnerItemName = orgManager.GetDisplayValue(p.EntityName, p.ObjectId),
                    p.Department_Name,
                    p.StartTime,
                    p.EndTime,
                    p.InstanceStatus,
                    p.ApproveResult,
                    p.EntityId
                }).Where(p => p.OwnerItemName.Contains(tbT_OwnerItemName.Text.Trim())).ToList();

                int count = tempSource.Count;
                this.gcProcessInstance.PagerSettings.DataCount = count;
                var source = tempSource;
                //绑定
                if (count > this.PageIndex * this.PageSize)
                {
                    source = tempSource.Skip(this.PageIndex * this.PageSize).Take(this.PageSize).ToList();
                }
                else
                {
                    this.PageIndex = 0;
                    this.gcProcessInstance.PagerSettings.PageIndex = 0;
                    source = tempSource.Take(this.PageSize).ToList();
                }
                gcProcessInstance.DataSource = source;
                gcProcessInstance.DataBind();
            }
        }