Beispiel #1
0
        private String GetProcInstName(String piID)
        {
            String                name = "";
            IWFWorkflowService    api  = WFFactory.GetWF(WFType.AgilePoint).GetAPI();
            WFBaseProcessInstance pi   = api.GetProcInst(piID);

            if (pi != null)
            {
                name = string.Format("{0},{1}", pi.ProcInstName, pi.Status);
            }
            return(name);
        }
Beispiel #2
0
 public KeyValue[] GetActivityInstStatus(String piID)
 {
     KeyValue[] ret = null;
     try
     {
         WorkflowService api = WFFactory.GetWF(WFType.AgilePoint).GetAPI();
         if (api != null)
         {
             ret = api.GetActivityInstStatus(piID);
         }
     }
     catch (Exception)
     {
     }
     return(ret);
 }
Beispiel #3
0
        public string GetActivityInstInfo(string piID, string aiID)
        {
            string html = "";

            try
            {
                WorkflowService       api  = WFFactory.GetWF(WFType.AgilePoint).GetAPI();
                WFBaseProcessInstance pi   = api.GetProcInst(piID);
                WFManualWorkItem[]    mwks = GetManualWorkItems(api, aiID);
                WFAutomaticWorkItem[] awks = null;
                if (mwks == null || mwks.Length == 0)
                {
                    awks = GetAutomaticWorkItems(api, aiID);
                }
                html = RenderActivityContent(api, pi, aiID, mwks, awks);
            }
            catch (Exception)
            {
            }

            return(html);
        }
Beispiel #4
0
        private void UpdateImagePage(String piID)
        {
            IWFWorkflowService api = WFFactory.GetWF(WFType.AgilePoint).GetAPI();

            string xml = api.GetProcDefGraphics(piID);

            if (xml == null || xml.Length == 0)
            {
                return;
            }

            GraphicImage g = new GraphicImage();

            g.FromXml(xml);
            System.IO.MemoryStream ms = new System.IO.MemoryStream(g.Image);
            Bitmap bitmap             = new Bitmap(ms);

            Size size       = Calculate(bitmap.Width, bitmap.Height);
            Size bitmapSize = ZoomView(bitmap.Width, bitmap.Height);

            int maginX = (size.Width - bitmapSize.Width) / 2;
            int maginY = (size.Height - bitmapSize.Height) / 2;

            Bitmap   canvas = new Bitmap(size.Width, size.Height, PixelFormat.Format24bppRgb);
            Graphics gdi    = Graphics.FromImage(canvas);

            gdi.FillRectangle(new SolidBrush(Color.White), 0, 0, canvas.Width, canvas.Height);

            gdi.DrawImage(bitmap, maginX, maginY, bitmapSize.Width, bitmapSize.Height);

            ArrayList shapes = g.Normalize(bitmapSize.Width, bitmapSize.Height, maginX, maginY);

            WFBaseActivityInstance[] ais = api.GetActivityInstsByPIID(piID);
            gdi.Flush();
            Session["ProcessImage"] = canvas;
            ProcInstImage.ImageUrl  = "ProcessImage.aspx";

            string map = "";

            foreach (NamedRectangle shp in shapes)
            {
                AddImageContrl(shp, WFBaseActivityInstance.ACTIVE, true);
                AddImageContrl(shp, WFBaseActivityInstance.PENDING, true);
                AddImageContrl(shp, WFBaseActivityInstance.PASSED, true);
                AddImageContrl(shp, WFBaseActivityInstance.CANCELLED, true);
                AddImageContrl(shp, WFBaseActivityInstance.ACTIVATED, true);
                if (ais != null)
                {
                    foreach (WFBaseActivityInstance ai in ais)
                    {
                        if (shp.Name.Equals(ai.Name))
                        {
                            int participantCount = CountParticipantOnActivity(api, piID, ai);

                            if (participantCount > 1)
                            {
                                DrawParticipantImage(gdi, shp, "MultiParticipant", participantCount);
                            }
                            else if (participantCount == 1)
                            {
                                DrawParticipantImage(gdi, shp, "SingleParticipant", participantCount);
                            }
                        }
                    }
                }
                map += AddAreaControl(shp);
            }
            ActivityInfoMap.Text = map;

            // add hidden text to store activity (name, id) map
            foreach (WFBaseActivityInstance ai in ais)
            {
                HtmlInputHidden ctrl = new HtmlInputHidden();
                ctrl.ID    = ai.Name;
                ctrl.Value = ai.ID;
                PlaceHolder.Controls.Add(ctrl);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            B_ReceiveEdit l_BusReceiveEdit  = null;
            B_Circulate   l_BusCirculate    = null;
            DataTable     l_dtbCirculate    = null;
            DataTable     l_dtbProcessSteps = null;
            String        l_strRegisterID   = null;

            M_ReceiveBase l_objWorkItem = null;

            //WFBaseProcessInstance l_objProcessInstance = null;
            if (!Page.IsPostBack)
            {
                this.ucAttachment.UCIsEditable = false;

                PreviousPageUrl     = Request.UrlReferrer.ToString();
                l_strRegisterID     = Request.QueryString[ConstString.QueryString.REGISTER_ID];
                l_BusReceiveEdit    = new B_ReceiveEdit();
                l_BusReceiveEdit.ID = Convert.ToInt32(l_strRegisterID);

                if (l_BusReceiveEdit == null)
                {
                    JScript.Alert("当前的ID或者无效,或者已经被删除!");
                    return;
                }

                this.ucAttachment.UCTemplateName = l_BusReceiveEdit.ProcessName;

                PopulateReceiveField(l_BusReceiveEdit);

                if (String.IsNullOrEmpty(l_BusReceiveEdit.ProcessID))
                {
                    divPrompt.Visible = true;
                    return;
                }
                WFBaseProcessInstance fp = null;
                fp = WFFactory.GetWF(WFType.AgilePoint).GetAPI().GetProcInst(l_BusReceiveEdit.ProcessID);
                //l_objProcessInstance = AgilePointWF.GetAPI().GetProcInst();

                if (fp != null)
                {
                    ProcessTemplate = fp.DefName;

                    String l_strCirculateTableName = FS.ADIM.OA.BLL.Common.TableName.GetCirculateTableName(fp.DefName);
                    l_BusCirculate          = new B_Circulate(l_strCirculateTableName);
                    l_dtbCirculate          = l_BusCirculate.GetCirculatesByID(l_strCirculateTableName, l_BusReceiveEdit.ProcessID, 0);
                    gdvCirculate.DataSource = l_dtbCirculate;
                    gdvCirculate.DataBind();
                    string strTableName = TableName.WorkItemsTableName.T_OA_GS_WorkItems;
                    switch (fp.DefName)
                    {
                    case ProcessConstString.TemplateName.COMPANY_RECEIVE:
                        l_objWorkItem = new B_GS_WorkItems();
                        strTableName  = TableName.WorkItemsTableName.T_OA_GS_WorkItems;
                        break;

                    default:
                        strTableName  = TableName.WorkItemsTableName.T_OA_MS_WorkItems;
                        l_objWorkItem = new B_MergeReceiveBase();
                        break;
                    }
                    strTableName     += ((fp.Status == ProcessConstString.ProcessStatus.STATUS_COMPLETED || fp.Status == ProcessConstString.ProcessStatus.STATUS_CANCELED)?"_BAK":"");
                    l_dtbProcessSteps = l_objWorkItem.GetStepsByProcessID(l_BusReceiveEdit.ProcessID, strTableName, l_objWorkItem);

                    DataView l_dtvDataView = new DataView(l_dtbProcessSteps);
                    l_dtvDataView.RowFilter = "D_StepStatus = 'Completed'";

                    rptProcessDetail.DataSource = l_dtvDataView;
                    rptProcessDetail.DataBind();
                }
            }
        }