【问题标题】:Getting code to run on all pages based on date让代码根据日期在所有页面上运行
【发布时间】:2015-02-05 17:53:44
【问题描述】:

我正在尝试创建一个包含两个主要部分的程序:项目和审计

一个项目会有一个开始日期和一个数字,告诉它距离完成还有多少天(它们都是预设的)。

我需要在项目完成前一天创建审核。

到目前为止没什么大不了的。

我预见到并且正在努力解决的问题是:

我怎样才能有效地维护它?我正在使用 MVC4 并尝试过操作过滤器。我在每个页面上都运行代码 - 以涵盖访问该站点的任何自定义 url。但是,这似乎大大减慢了速度。到目前为止,这是我所拥有的:

public class CreateAuditsController : ActionFilterAttribute
{
    private QAAPPEntities db = new QAAPPEntities();

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        CreateAuditsFromProjects();
        base.OnActionExecuted(filterContext);
    }

    public void CreateAuditsFromProjects()
    {
        // Generate list of Research Projects
        List<ResearchProject> allResearchProjects = db.ResearchProjects.Include(a => a.ResearchProjectStatus).ToList();

        // Cycle through those to see which ones need audits created
        for (int i = 0; i < allResearchProjects.Count; i++)
        {
            // Get current looped project for further use
            ResearchProject currentLoopedProject = allResearchProjects[i];
            if (currentLoopedProject.Description == "Some Description")
            {
                Audit auditToAdd = new Audit();
                auditToAdd.ResearchProjectID = currentLoopedProject.ResearchProjectID;
                auditToAdd.Name = "Some Name";
                auditToAdd.AssignedQAID = 1;
                auditToAdd.CreatedDate = DateTime.Now;
                auditToAdd.AuditStatusID = 1;
                auditToAdd.AuditTypeID = 1;
                db.Audits.Add(auditToAdd);
                db.SaveChanges();
            }

        }
        db.SaveChanges();

        // Create audits


    }
}

感谢任何帮助。

【问题讨论】:

    标签: asp.net-mvc-4 actionfilterattribute timed-events


    【解决方案1】:

    查看Revalee。它让您可以安排稍后要采取的行动。因此,当您创建项目时,您将使用 Revalee 客户端安排在其结束前一天创建审计。

    【讨论】:

      【解决方案2】:

      简单的解决方案是,创建一个数据库event,其逻辑是检查所有剩余一天的项目,并在审计表中为每个项目添加一条记录。

      谢谢。

      【讨论】:

        猜你喜欢
        • 2017-06-23
        • 2022-06-18
        • 2015-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多