2015-02-05 12 views
-1

나는 두 가지 주요 부분으로 프로그램을 작성하려고에 따라 모든 페이지에 실행 완료 될 때까지 (모두 사전 설정 됨).얻기 코드는 날짜

프로젝트가 완료되기 하루 전으로 말하면 감사를 만들어야합니다.

지금까지 별거 아니야.

난을 forsee과 답변을하는 방법을 고민하고 문제는 다음과 같습니다

I 효율적이 어떻게 유지할 수 있습니다? 나는 MVC4를 사용하고 Action Filter를 시도했다. 모든 페이지에서 코드 실행 - 사이트에 액세스하는 모든 사용자 정의 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 


    } 
} 

어떤 도움을 주시면 감사하겠습니다.

답변

1

체크 아웃 Revalee. 나중에 수행 할 작업을 예약하십시오. 따라서 프로젝트를 만들 때 Revalee 클라이언트를 사용하여 종료되기 하루 전날에 감사가 생성되도록 예약합니다.

0

단순한 해결책은 하루 남은 모든 프로젝트를 확인하고 각 프로젝트에 대한 감사 테이블에 레코드를 추가하는 논리로 데이터베이스 event을 작성하는 것입니다.

감사합니다.