public static WFBaseActivityInstance[] GetActivityInstsByPIID(string piID)
        {
            // This is console application sample
            IWFWorkflowService svc = Common.GetWorkFlowAPI();
            string             processInstanceID = piID;//"02C3FA88ADE04750A34B5B3168C25793";

            WFBaseActivityInstance[] activityInstance = null;
            try
            {
                activityInstance = svc.GetActivityInstsByPIID(processInstanceID);
            }
            catch (Exception ex)
            {
            }
            return(activityInstance);
        }
Example #2
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);
            }
        }