public static NextSection Next(ChangeOfCircs form, Sections completedSection) { var index = _order.IndexOf(completedSection) + 1; Sections?nextSection = null; while (!nextSection.HasValue && index < _order.Count) { var section = _order[index]; if (!FeatureToggles.SkipWorkInProgressSection(section)) { var strategy = SectionStrategy.For(section); if (strategy.Required(form)) { nextSection = section; } else { strategy.SkipSection(form); } } index++; } return(new NextSection { Id = form.Id, Section = nextSection, }); }
public static NextSection Start() { var form = new ChangeOfCircs(); Repository.Insert(form); return(new NextSection { Id = form.Id, Section = Navigation.Order.First(), }); }
public static void Populate(CocDetail detail, Sections section, ChangeOfCircs form) { var index = _order.IndexOf(section) - 1; while (index >= 0 && !detail.PreviousSection.HasValue) { var previousSection = _order[index]; if (!FeatureToggles.SkipWorkInProgressSection(previousSection)) { var strategy = SectionStrategy.For(previousSection); if (strategy.Required(form)) { detail.PreviousSection = previousSection; } } index--; } detail.IsFinalSection = (section == _order.Last()); }
public override void SkipSection(ChangeOfCircs form) { form.OnSkipPaymentDetails(); }
public override bool Required(ChangeOfCircs form) { return(Navigation.RequiresPaymentDetails(form)); }
public override void SkipSection(ChangeOfCircs form) { form.OnSkipHealthProfessional(); }
public override bool Required(ChangeOfCircs form) { return(Navigation.RequiresHealthProfessional(form)); }
public override void SkipSection(ChangeOfCircs form) { form.OnSkipExpectedChildren(); }
public override bool Required(ChangeOfCircs form) { return(Navigation.RequiresExpectedChildren(form)); }
public virtual void SkipSection(ChangeOfCircs form) { throw new Exception("ClearSection not implemented for section: " + GetType()); }
public virtual bool Required(ChangeOfCircs form) { return(true); // default is to require sections }
public static bool RequiresHealthProfessional(ChangeOfCircs form) { return(form.Options?.AddExpectedBaby == true); }
public static bool RequiresExpectedChildren(ChangeOfCircs form) { return(form.Options?.AddExpectedBaby == true); }
public static bool RequiresPaymentDetails(ChangeOfCircs form) { return(form.Options?.ChangePaymentDetails == true); }
public static bool RequiresApplicantDetails(ChangeOfCircs form) { return(form.Options?.ChangePersonalDetails == true); }