NuSurvey.Web.Controllers.ProgramDirectorController.Create C# (CSharp) Method

Create() private method

private Create ( int surveyId ) : System.Web.Mvc.ActionResult
surveyId int
return System.Web.Mvc.ActionResult
        public ActionResult Create(int surveyId)
        {
            if (_printedSurveyRepository.Queryable.Count(a => a.UserId == CurrentUser.Identity.Name) >= 100)
            {
                Message = "Maximum surveys reached, please delete existing surveys before duplicating more.";
                return this.RedirectToAction(a => a.Index());
            }

            var survey = _surveyRepository.Queryable.Single(a => a.Id == surveyId && a.IsActive);
            var printedSurvey = new PrintedSurvey();
            printedSurvey.Survey = survey;
            printedSurvey.UserId = CurrentUser.Identity.Name;

            foreach (var question in survey.Questions.Where(a => a.Category.IsCurrentVersion && a.Category.IsCurrentVersion && a.IsActive))
            {
                var psq = new PrintedSurveyQuestion();
                psq.PrintedSurvey = printedSurvey;
                psq.Question = question;
                psq.Photo = question.PrimaryPhoto;
                psq.Order = question.Order;
                if (psq.Photo == null || psq.Photo.IsPrintable == false || psq.Photo.IsActive == false)
                {
                    psq.Photo = question.Photos.FirstOrDefault(a => a.IsPrintable && a.IsActive);
                }

                printedSurvey.PrintedSurveyQuestions.Add(psq);
            }

            _printedSurveyRepository.EnsurePersistent(printedSurvey);

            return this.RedirectToAction(a => a.SetName(printedSurvey.Id));
        }