/// <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); } }
/// <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; }
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 }); }
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'"); } }
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; } } } }
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); }
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); } } }
/// <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(); } }
/// <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(); } }