public void SaveApplicationSectionTrainee(Guid appUniqueId, ApplicationSectionResponse section, string updatedBy, int?roleId) { LogMessage("SaveApplicationSection (ApplicationManager)"); var application = base.Repository.GetByUniqueId(appUniqueId, false, false, true); if (application == null) { throw new ObjectNotFoundException("Cannot find application"); } foreach (var question in section.Questions.Where(x => x.AnswerResponseStatusId != 0)) { var applicationResponseTrainee = new ApplicationResponseTrainee { ApplicationId = application.Id, ApplicationSectionQuestionId = question.Id.GetValueOrDefault(), ApplicationResponseStatusId = question.AnswerResponseStatusId, CreatedBy = updatedBy, CreatedDate = DateTime.Now }; //applicationResponseTrainee.ApplicationSectionQuestionAnswerId = question.an application.ApplicationResponsesTrainee.Add(applicationResponseTrainee); } this.Repository.Save(application); }
public List <ApplicationResponseTrainee> GetApplicationResponsesTraineeForSection(ApplicationSectionItem section, string updatedBy, int?roleId) { LogMessage("GetApplicationResponsesTraineeForSection (ApplicationManager)"); var applicationResponsesTrainee = new List <ApplicationResponseTrainee>(); string rfiCreatedBy = string.Empty; foreach (var question in section.Questions) { int statusId = 0; if (question.AnswerResponseStatusId != 0) { statusId = question.AnswerResponseStatusId; } foreach (var response in question.QuestionResponses) { var hasResponse = false; var applicationResponseTrainee = new ApplicationResponseTrainee { ApplicationSectionQuestionId = question.Id.Value, ApplicationResponseStatusId = statusId, CreatedDate = DateTime.Now, CreatedBy = updatedBy, }; if (hasResponse) { applicationResponsesTrainee.Add(applicationResponseTrainee); } } if (question.Answers.Count > 0) { applicationResponsesTrainee.AddRange( question.Answers .Where(x => x.Selected) .Select(answer => new ApplicationResponseTrainee { ApplicationSectionQuestionId = question.Id.Value, ApplicationSectionQuestionAnswerId = answer.Id, ApplicationResponseStatusId = statusId, CreatedDate = DateTime.Now, CreatedBy = updatedBy })); } } if (section.Children != null && section.Children.Count > 0) { applicationResponsesTrainee.AddRange(this.GetApplicationResponsesTrainee(section.Children, updatedBy, roleId)); } return(applicationResponsesTrainee); }