/// <summary>Snippet for ListPagesAsync</summary>
        public async Task ListPagesResourceNamesAsync()
        {
            // Snippet: ListPagesAsync(FlowName, string, int?, CallSettings)
            // Create client
            PagesClient pagesClient = await PagesClient.CreateAsync();

            // Initialize request argument(s)
            FlowName parent = FlowName.FromProjectLocationAgentFlow("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]");
            // Make the request
            PagedAsyncEnumerable <ListPagesResponse, Page> response = pagesClient.ListPagesAsync(parent);

            // Iterate over all response items, lazily performing RPCs as required
            await response.ForEachAsync((Page item) =>
            {
                // Do something with each item
                Console.WriteLine(item);
            });

            // Or iterate over pages (of server-defined size), performing one RPC per page
            await response.AsRawResponses().ForEachAsync((ListPagesResponse page) =>
            {
                // Do something with each page of items
                Console.WriteLine("A page of results:");
                foreach (Page item in page)
                {
                    // Do something with each item
                    Console.WriteLine(item);
                }
            });

            // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
            int         pageSize   = 10;
            Page <Page> singlePage = await response.ReadPageAsync(pageSize);

            // Do something with the page of items
            Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
            foreach (Page item in singlePage)
            {
                // Do something with each item
                Console.WriteLine(item);
            }
            // Store the pageToken, for when the next page is required.
            string nextPageToken = singlePage.NextPageToken;
            // End snippet
        }
        public void DeleteFlowResourceNames()
        {
            moq::Mock <Flows.FlowsClient> mockGrpcClient = new moq::Mock <Flows.FlowsClient>(moq::MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object);
            DeleteFlowRequest request = new DeleteFlowRequest
            {
                FlowName = FlowName.FromProjectLocationAgentFlow("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"),
            };
            wkt::Empty expectedResponse = new wkt::Empty {
            };

            mockGrpcClient.Setup(x => x.DeleteFlow(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(expectedResponse);
            FlowsClient client = new FlowsClientImpl(mockGrpcClient.Object, null);

            client.DeleteFlow(request.FlowName);
            mockGrpcClient.VerifyAll();
        }
Пример #3
0
        /// <summary>Snippet for ValidateFlowAsync</summary>
        public async Task ValidateFlowRequestObjectAsync()
        {
            // Snippet: ValidateFlowAsync(ValidateFlowRequest, CallSettings)
            // Additional: ValidateFlowAsync(ValidateFlowRequest, CancellationToken)
            // Create client
            FlowsClient flowsClient = await FlowsClient.CreateAsync();

            // Initialize request argument(s)
            ValidateFlowRequest request = new ValidateFlowRequest
            {
                FlowName     = FlowName.FromProjectLocationAgentFlow("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"),
                LanguageCode = "",
            };
            // Make the request
            FlowValidationResult response = await flowsClient.ValidateFlowAsync(request);

            // End snippet
        }
Пример #4
0
        /// <summary>Snippet for DeleteFlowAsync</summary>
        public async Task DeleteFlowRequestObjectAsync()
        {
            // Snippet: DeleteFlowAsync(DeleteFlowRequest, CallSettings)
            // Additional: DeleteFlowAsync(DeleteFlowRequest, CancellationToken)
            // Create client
            FlowsClient flowsClient = await FlowsClient.CreateAsync();

            // Initialize request argument(s)
            DeleteFlowRequest request = new DeleteFlowRequest
            {
                FlowName = FlowName.FromProjectLocationAgentFlow("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"),
                Force    = false,
            };
            // Make the request
            await flowsClient.DeleteFlowAsync(request);

            // End snippet
        }
Пример #5
0
        /// <summary>Snippet for ListVersions</summary>
        public void ListVersionsResourceNames()
        {
            // Snippet: ListVersions(FlowName, string, int?, CallSettings)
            // Create client
            VersionsClient versionsClient = VersionsClient.Create();
            // Initialize request argument(s)
            FlowName parent = FlowName.FromProjectLocationAgentFlow("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]");
            // Make the request
            PagedEnumerable <ListVersionsResponse, gcdcv::Version> response = versionsClient.ListVersions(parent);

            // Iterate over all response items, lazily performing RPCs as required
            foreach (gcdcv::Version item in response)
            {
                // Do something with each item
                Console.WriteLine(item);
            }

            // Or iterate over pages (of server-defined size), performing one RPC per page
            foreach (ListVersionsResponse page in response.AsRawResponses())
            {
                // Do something with each page of items
                Console.WriteLine("A page of results:");
                foreach (gcdcv::Version item in page)
                {
                    // Do something with each item
                    Console.WriteLine(item);
                }
            }

            // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
            int pageSize = 10;
            Page <gcdcv::Version> singlePage = response.ReadPage(pageSize);

            // Do something with the page of items
            Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
            foreach (gcdcv::Version item in singlePage)
            {
                // Do something with each item
                Console.WriteLine(item);
            }
            // Store the pageToken, for when the next page is required.
            string nextPageToken = singlePage.NextPageToken;
            // End snippet
        }
Пример #6
0
        /// <summary>Snippet for CreateTransitionRouteGroupAsync</summary>
        public async Task CreateTransitionRouteGroupRequestObjectAsync()
        {
            // Snippet: CreateTransitionRouteGroupAsync(CreateTransitionRouteGroupRequest, CallSettings)
            // Additional: CreateTransitionRouteGroupAsync(CreateTransitionRouteGroupRequest, CancellationToken)
            // Create client
            TransitionRouteGroupsClient transitionRouteGroupsClient = await TransitionRouteGroupsClient.CreateAsync();

            // Initialize request argument(s)
            CreateTransitionRouteGroupRequest request = new CreateTransitionRouteGroupRequest
            {
                ParentAsFlowName     = FlowName.FromProjectLocationAgentFlow("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"),
                TransitionRouteGroup = new TransitionRouteGroup(),
                LanguageCode         = "",
            };
            // Make the request
            TransitionRouteGroup response = await transitionRouteGroupsClient.CreateTransitionRouteGroupAsync(request);

            // End snippet
        }
        public async stt::Task DeleteFlowResourceNamesAsync()
        {
            moq::Mock <Flows.FlowsClient> mockGrpcClient = new moq::Mock <Flows.FlowsClient>(moq::MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object);
            DeleteFlowRequest request = new DeleteFlowRequest
            {
                FlowName = FlowName.FromProjectLocationAgentFlow("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"),
            };
            wkt::Empty expectedResponse = new wkt::Empty {
            };

            mockGrpcClient.Setup(x => x.DeleteFlowAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <wkt::Empty>(stt::Task.FromResult(expectedResponse), null, null, null, null));
            FlowsClient client = new FlowsClientImpl(mockGrpcClient.Object, null);
            await client.DeleteFlowAsync(request.FlowName, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None));

            await client.DeleteFlowAsync(request.FlowName, st::CancellationToken.None);

            mockGrpcClient.VerifyAll();
        }
Пример #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //设置只读权限
                if (Request.QueryString["type"] == "read")
                {
                    btn_submit.Visible = false;
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "message", "$(function(){$('input').attr('readonly', 'readonly');$('select').attr('disabled', 'true');$('textarea').attr('readonly', 'readonly');});", true);
                }
                //流程名称
                FlowName.DataSource     = WebBLL.Tbl_FlowManager.GetTbl_FlowAll();
                FlowName.DataTextField  = "FlowName";
                FlowName.DataValueField = "ID";
                FlowName.DataBind();
                FlowName.Items.Insert(0, new ListItem("选择流程", ""));

                //遍历绑定人员列表
                WebBLL.Tbl_UserManager.GetUsersByListBox(NodeUser);

                Bind();
            }
        }
Пример #9
0
        public async stt::Task CreatePageRequestObjectAsync()
        {
            moq::Mock <Pages.PagesClient> mockGrpcClient = new moq::Mock <Pages.PagesClient>(moq::MockBehavior.Strict);
            CreatePageRequest             request        = new CreatePageRequest
            {
                ParentAsFlowName = FlowName.FromProjectLocationAgentFlow("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"),
                Page             = new Page(),
                LanguageCode     = "language_code2f6c7160",
            };
            Page expectedResponse = new Page
            {
                PageName         = PageName.FromProjectLocationAgentFlowPage("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[PAGE]"),
                DisplayName      = "display_name137f65c2",
                Form             = new Form(),
                EntryFulfillment = new Fulfillment(),
                TransitionRoutes =
                {
                    new TransitionRoute(),
                },
                EventHandlers = { new EventHandler(), },
                TransitionRouteGroupsAsTransitionRouteGroupNames =
                {
                    TransitionRouteGroupName.FromProjectLocationAgentFlowTransitionRouteGroup("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[TRANSITION_ROUTE_GROUP]"),
                },
            };

            mockGrpcClient.Setup(x => x.CreatePageAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <Page>(stt::Task.FromResult(expectedResponse), null, null, null, null));
            PagesClient client = new PagesClientImpl(mockGrpcClient.Object, null);
            Page        responseCallSettings = await client.CreatePageAsync(request, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None));

            xunit::Assert.Same(expectedResponse, responseCallSettings);
            Page responseCancellationToken = await client.CreatePageAsync(request, st::CancellationToken.None);

            xunit::Assert.Same(expectedResponse, responseCancellationToken);
            mockGrpcClient.VerifyAll();
        }
Пример #10
0
        /// <summary>Snippet for ExportFlowAsync</summary>
        public async Task ExportFlowRequestObjectAsync()
        {
            // Snippet: ExportFlowAsync(ExportFlowRequest, CallSettings)
            // Additional: ExportFlowAsync(ExportFlowRequest, CancellationToken)
            // Create client
            FlowsClient flowsClient = await FlowsClient.CreateAsync();

            // Initialize request argument(s)
            ExportFlowRequest request = new ExportFlowRequest
            {
                FlowName = FlowName.FromProjectLocationAgentFlow("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"),
                FlowUri  = "",
                IncludeReferencedFlows = false,
            };
            // Make the request
            Operation <ExportFlowResponse, Struct> response = await flowsClient.ExportFlowAsync(request);

            // Poll until the returned long-running operation is complete
            Operation <ExportFlowResponse, Struct> completedResponse = await response.PollUntilCompletedAsync();

            // Retrieve the operation result
            ExportFlowResponse result = completedResponse.Result;

            // Or get the name of the operation
            string operationName = response.Name;
            // This name can be stored, then the long-running operation retrieved later by name
            Operation <ExportFlowResponse, Struct> retrievedResponse = await flowsClient.PollOnceExportFlowAsync(operationName);

            // Check if the retrieved long-running operation has completed
            if (retrievedResponse.IsCompleted)
            {
                // If it has completed, then access the result
                ExportFlowResponse retrievedResult = retrievedResponse.Result;
            }
            // End snippet
        }
Пример #11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //流程名称
                FlowName.DataSource     = WebBLL.Tbl_FlowManager.GetTbl_FlowAll();
                FlowName.DataTextField  = "FlowName";
                FlowName.DataValueField = "ID";
                FlowName.DataBind();
                FlowName.Items.Insert(0, "选择流程");

                //获取当前工作ID
                ID = Convert.ToInt32(Request.QueryString["id"]);

                //如果是项目流程发起的表单
                int projectid = WebCommon.Public.ToInt(Request.QueryString["ProjectID"]);
                if (projectid > 0)
                {
                    ID = WebCommon.Public.ToInt(WebBLL.Tbl_FlowWorkManager.GetDataTableByPage(1, 1, "projectid=" + projectid.ToString(), "id desc").Rows[0]["ID"]);
                }
                FlowWorkID.Value = ID.ToString();

                //获取当前工作内容
                WebModels.Tbl_FlowWork flowwork = WebBLL.Tbl_FlowWorkManager.GetTbl_FlowWorkById(ID);
                this.NodeLocal.Value        = WebBLL.Tbl_FlowNodeManager.GetTbl_FlowNodeById(flowwork.NodeID).NodeName;
                this.WorkName.Value         = flowwork.WorkName;
                this.FlowName.SelectedValue = flowwork.FlowID.ToString();
                this.FormContent.InnerHtml  = flowwork.FormContent;

                //获取表单常用短语
                string FromWords = "";
                foreach (WebModels.Tbl_FlowFormWord formword in WebBLL.Tbl_FlowFormWordManager.GetTbl_FlowFormWordAll())
                {
                    FromWords += "<div onclick=InputText($(this).text()) style=margin:5px>" + formword.IFW_Name + "</div>";
                }
                //向表单注册验证程序
                string LocalPwd    = WebBLL.Tbl_UserManager.GetTbl_UserByUserName(WebCommon.Public.GetUserName()).UserPwd;
                string LimitScript = "" +
                                     "$('.formctrl[disabled]').removeAttr('disabled');" +
                                     "$('.formctrl[data-node!=" + flowwork.NodeNo + "]').attr('disabled','disabled');" +
                                     "$('.formctrl[type^=text]').dblclick(function(){$(this).attr('lock','1');$$.MsgBox('常用短语', '" + FromWords + "', '关闭窗口');});" +
                                     "$('.formctrl[value=电子签名]').click(function(){$$.MsgBox('密码验证', '<input type=password id=password>', '确定:InsertSign()', '取消');});" +
                                     "function InsertSign(){" +
                                     "if($.md5($('#password').val())=='" + LocalPwd + "'){$('.formctrl[value=电子签名]').hide();$$.MsgBox(0);" +
                                     "$('.formctrl[value=电子签名]').after('<img src=" + WebBLL.Tbl_UserManager.GetTbl_UserByUserName(WebCommon.Public.GetUserName()).U_Sign + ">');" +
                                     "}else{alert('密码不正确');}}" +
                                     "function InputText(info){" +
                                     "$('.formctrl[lock=1]').val(info);$('.formctrl[lock=1]').removeAttr('lock');$$.MsgBox(0);}";
                ScriptManager.RegisterStartupScript(this, this.GetType(), "message", LimitScript, true);

                //流程的当前节点绑定
                NodeID.DataSource     = WebBLL.Tbl_FlowNodeManager.GetTbl_FlowNodesByFlowID(flowwork.FlowID);
                NodeID.DataTextField  = "NodeName";
                NodeID.DataValueField = "NodeNo";
                NodeID.DataBind();
                NodeID.Enabled       = false;
                NodeID.SelectedValue = (Convert.ToInt32(flowwork.NodeNo) + 1).ToString();
                //如果是最后一个节点那么不再跳转
                if (NodeID.SelectedValue == "1")
                {
                    NodeID.SelectedIndex = NodeID.Items.Count - 1;
                }

                //判断节点权限
                DataRow dr = WebBLL.Tbl_FlowNodeManager.GetDataTableByPage(1, 1, "flowid=" + flowwork.FlowID.ToString() + " and nodeno=" + flowwork.NodeNo, "").Rows[0];
                if (flowwork.Status == "结束")
                {
                    btn_submit.Visible = false;
                }
                if (!dr["NodeUserLimit"].ToString().Contains("允许驳回"))
                {
                    Button1.Visible = false;
                }
                if (!dr["NodeUserLimit"].ToString().Contains("允许跳过"))
                {
                    Button2.Visible = false;
                }
                if (!dr["NodeUserLimit"].ToString().Contains("允许终止"))
                {
                    Button3.Visible = false;
                }
                if (!dr["NodeUser"].ToString().Contains(WebCommon.Public.GetUserName()))
                {
                    btn_submit.Visible = false;
                }
            }
        }