首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SharePoint 2010中更改工作流的任务编辑形式

在SharePoint 2010中更改工作流的任务编辑形式
EN

Code Review用户
提问于 2015-04-01 07:16:49
回答 1查看 240关注 0票数 2

当审批者想批准/拒绝任务时,我想更改工作流的任务编辑表单。请回顾并建议改进或任何其他可能的解决方案,并作出解释。

代码语言:javascript
复制
 public void createTask1_MethodInvoking(object sender, EventArgs e)
        {
            createTask1_TaskId1 = Guid.NewGuid();
            createTask1_TaskProperties1.Title = "Test Title";
            createTask1_TaskProperties1.AssignedTo = "i:0#.w|directory\approver";
            var taskList = workflowProperties.TaskList;                
            var wfContentType = taskList.ContentTypes["Workflow Task"];
            TaskTitle = workflowProperties.Item["Title"].ToString();
            wfContentType.DisplayFormUrl = "_Layouts/SharePointProject4/ApplicationPage1.aspx";
            wfContentType.EditFormUrl = wfContentType.DisplayFormUrl;
            wfContentType.Update();
            taskList.NavigateForFormsPages = false;
            taskList.Update();
        }
EN

回答 1

Code Review用户

回答已采纳

发布于 2015-05-20 13:36:29

给你的代码一些空间呼吸。

在C#中,空空间不需要花费任何费用,因此添加一些空白来将类似的概念组合在一起。

代码语言:javascript
复制
 public void createTask1_MethodInvoking(object sender, EventArgs e)
    {
        createTask1_TaskId1 = Guid.NewGuid();
        createTask1_TaskProperties1.Title = "Test Title";
        createTask1_TaskProperties1.AssignedTo = "i:0#.w|directory\approver";

        var taskList = workflowProperties.TaskList;                
        var wfContentType = taskList.ContentTypes["Workflow Task"];

        TaskTitle = workflowProperties.Item["Title"].ToString();

        wfContentType.DisplayFormUrl = "_Layouts/SharePointProject4/ApplicationPage1.aspx";
        wfContentType.EditFormUrl = wfContentType.DisplayFormUrl;
        wfContentType.Update();

        taskList.NavigateForFormsPages = false;
        taskList.Update();
    }

其次,在命名变量时,要显式化。没有必要缩写任何东西,再一次,额外的字符是免费的。

代码语言:javascript
复制
  public void createTask1_MethodInvoking(object sender, EventArgs e)
    {
        createTask1_TaskId1 = Guid.NewGuid();
        createTask1_TaskProperties1.Title = "Test Title";
        createTask1_TaskProperties1.AssignedTo = "i:0#.w|directory\approver";

        var taskList = workflowProperties.TaskList;                
        var workFlowContentType = taskList.ContentTypes["Workflow Task"];

        TaskTitle = workflowProperties.Item["Title"].ToString();

        workFlowContentType.DisplayFormUrl = "_Layouts/SharePointProject4/ApplicationPage1.aspx";
        workFlowContentType.EditFormUrl = wfContentType.DisplayFormUrl;
        workFlowContentType.Update();

        taskList.NavigateForFormsPages = false;
        taskList.Update();
    }

接下来,进入设计阶段。您已经命名了一个任务createTask1,这是值得关注的,因为这意味着您可能已经用不同的数字创建了很多这样的任务。将它们放到一个名为createTasks的集合中,然后尝试重构您的MethodInvoking事件处理程序,以便在所有createTasks中进行抽象。如果createTask1的某些地方意味着事件处理程序逻辑不能应用于其他createTask实例,那么您应该根据这个唯一属性命名createTask1

很难知道这个方法处理程序要做什么,因为它只是以调用它的事件命名。给它一个更好的名称,或者用一个合理的名称将这个功能提取到自己的方法中,然后从createTask1_MethodInvoking调用它。

最后,我看到了一堆神奇的字符串,这使得重构变得非常困难,因为您必须在很多地方进行更改,而且它们还会妨碍代码的可理解性。将几乎所有这些字符串都用合理的名称放入常量字段中。

票数 4
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/85564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档