public IForm <T> Build(Assembly resourceAssembly = null, string resourceName = null) { if (!_form._steps.Any((step) => step.Type == StepType.Field)) { var paths = new List <string>(); FormBuilder <T> .FieldPaths(typeof(T), "", paths); IFormBuilder <T> builder = this; foreach (var path in paths) { builder.Field(new FieldReflector <T>(path)); } builder.Confirm(new PromptAttribute(_form.Configuration.Template(TemplateUsage.Confirmation))); } if (resourceAssembly == null) { resourceAssembly = typeof(T).Assembly; } if (resourceName == null) { resourceName = typeof(T).FullName; } var lang = resourceAssembly.GetCustomAttribute <NeutralResourcesLanguageAttribute>(); if (lang != null && !string.IsNullOrWhiteSpace(lang.CultureName)) { try { IEnumerable <string> missing, extra; string name = null; foreach (var resource in resourceAssembly.GetManifestResourceNames()) { if (resource.Contains(resourceName)) { var pieces = resource.Split('.'); name = string.Join(".", pieces.Take(pieces.Count() - 1)); break; } } if (name != null) { var rm = new ResourceManager(name, resourceAssembly); var rs = rm.GetResourceSet(Thread.CurrentThread.CurrentUICulture, true, true); _form.Localize(rs.GetEnumerator(), out missing, out extra); if (missing.Any()) { throw new MissingManifestResourceException($"Missing resources {missing}"); } } } catch (MissingManifestResourceException) { // Resource was not localized } } Validate(); return(this._form); }
public IFormBuilder <T> Confirm(string prompt, ActiveDelegate <T> condition = null, IEnumerable <string> dependencies = null) { IFormBuilder <T> builder = this; return(builder.Confirm(new PromptAttribute(prompt) { ChoiceFormat = Resources.ConfirmChoiceFormat, AllowDefault = BoolDefault.False }, condition, dependencies)); }
public IForm <T> Build() { if (!_form._steps.Any((step) => step.Type == StepType.Field)) { var paths = new List <string>(); FormBuilder <T> .FieldPaths(typeof(T), "", paths); IFormBuilder <T> builder = this; foreach (var path in paths) { builder.Field(new FieldReflector <T>(path)); } builder.Confirm("Is this your selection?\n{*}"); } Validate(); return(this._form); }