public static RiskAssessmentReview Create( RiskAssessment riskAssessment, UserForAuditing user, Employee assignedToEmployee, DateTime completionDueDate, ITaskCategoryRepository responsibilityTaskCategoryRepository, bool sendTaskNotification, bool sendTaskCompletedNotification, bool sendTaskOverdueNotification, bool sendTaskDueTomorrowNotification, Guid taskGuid ) { var result = new RiskAssessmentReview() { RiskAssessment = riskAssessment, ReviewAssignedTo = assignedToEmployee, CreatedBy = user, CreatedOn = DateTime.Now, CompletionDueDate = completionDueDate, LastModifiedBy = user, LastModifiedOn = DateTime.Now }; riskAssessment.AddReview(result); TaskCategory taskCategory = null; string description = null; if(riskAssessment as HazardousSubstanceRiskAssessment != null) { taskCategory = responsibilityTaskCategoryRepository.GetHazardousSubstanceRiskAssessmentTaskCategory(); description = "HSRA Review"; } if (riskAssessment as GeneralRiskAssessment != null) { taskCategory = responsibilityTaskCategoryRepository.GetGeneralRiskAssessmentTaskCategory(); description = "GRA Review"; } if (riskAssessment as PersonalRiskAssessment != null) { taskCategory = responsibilityTaskCategoryRepository.GetPersonalRiskAssessmentTaskCategory(); description = "PRA Review"; } if (riskAssessment as FireRiskAssessment != null) { taskCategory = responsibilityTaskCategoryRepository.GetFireRiskAssessmentTaskCategory(); description = "FRA Review"; } if (riskAssessment.LastModifiedBy == null) { riskAssessment.LastModifiedBy = user; riskAssessment.LastModifiedOn = DateTime.Now; } result.RiskAssessmentReviewTask = RiskAssessmentReviewTask.Create( riskAssessment.Reference, riskAssessment.Title, description, completionDueDate, TaskStatus.Outstanding, assignedToEmployee, user, new List<CreateDocumentParameters>(), taskCategory, (int)TaskReoccurringType.None, null, result, sendTaskNotification, sendTaskCompletedNotification, sendTaskOverdueNotification, sendTaskDueTomorrowNotification, taskGuid); return result; }