public WorkflowDiagramArea(int requestID) { View = AgentUICoreMediator.GetAgentUICoreMediator.UIManager.GetRequestDiagramForm(); View.RequestID = requestID; var requestDiagram = AgentUICoreMediator.GetAgentUICoreMediator.workflowService.GetRequestDiagram(AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(), requestID); I_View_StateShape shape = null; int index = 0; if (requestDiagram.FirstDiagramState != null) { shape = View.AddStateShape(index); SetShapeInfo(shape, requestDiagram.FirstDiagramState, View, null); } foreach (var item in requestDiagram.DiagramStates) { var lastShape = shape; index++; shape = View.AddStateShape(index); SetShapeInfo(shape, item, View, lastShape); } }
private void SetShapeInfo(I_View_StateShape shape, DiagramStateDTO state, I_View_RequestDiagram view, I_View_StateShape previousShape) { shape.Title = state.Name; shape.CreationDate = state.CreationDate.ToString(); shape.Clicked += (sender, e) => Shape_Clicked(sender, e, state); if (previousShape != null) { int index = 0; var causingRequestActions = state.CausingRequestActions.Where(x => x.IsCompleted); foreach (var item in causingRequestActions.OrderBy(x => x.DateTimeCompleted)) { var connector = view.AddConnection(shape, previousShape, causingRequestActions.Count(), index); connector.Clicked += Connector_Clicked; connector.OrgnizatoinPostUserInfo = item.OrganizationPost.Name; if (causingRequestActions.Count() > 1) { if (item.LedToState != 0) { connector.Highlight = true; } } var dif = item.DateTimeCompleted.Value - item.DateTimeCreation; string duration = ""; if (dif.Days != 0) { duration += dif.Days + "روز"; } if (dif.Hours != 0) { duration += (duration == "" ? "" : " و ") + dif.Hours + "ساعت"; } if (dif.Minutes != 0) { duration += (duration == "" ? "" : " و ") + dif.Minutes + "دقیقه"; } if (duration == "") { duration = dif.Seconds + "ثانیه"; } connector.Duration = duration; var tooltip = "اقدام :" + " " + item.TransitionAction.Name; tooltip += Environment.NewLine + "پست سازمانی اقدام کننده :" + " " + item.OrganizationPost.Name; if (item.User != null) { tooltip += Environment.NewLine + "کاربر اقدام کننده :" + " " + item.User.FullName; } tooltip += Environment.NewLine + "نوع اقدام کننده :" + " " + item.TargetReason; tooltip += Environment.NewLine + "زمان شروع :" + " " + item.DateTimeCreation.ToString(); tooltip += Environment.NewLine + "زمان اتمام :" + " " + item.DateTimeCompleted.Value.ToString(); if (!string.IsNullOrEmpty(item.Description)) { tooltip += Environment.NewLine + "توضیحات :" + " " + item.Description; } connector.Tooltip = tooltip; connector.Action = item.TransitionAction.Name; index++; } } }