public static AskDropdown Parse(Parser parser) { var dd = new AskDropdown(); dd.Label = parser.GetString("Dropdown"); dd.list = new List <DropdownItem>(); if (parser.curr.indent == 0) { return(dd); } var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var m = DropdownItem.Parse(parser, startindent); dd.list.Add(m); } var q = (from i in dd.list group i by i.SmallGroup into g where g.Count() > 1 select g.Key).ToList(); if (q.Any()) { throw parser.GetException("Duplicate SmallGroup in Dropdown: {0}".Fmt(string.Join(",", q))); } return(dd); }
public new static AskDropdown ReadXml(XElement ele) { var dd = new AskDropdown {Label = ele.Element("Label")?.Value}; foreach (var ee in ele.Elements("DropdownItem")) dd.list.Add(DropdownItem.ReadXml(ee)); // todo: prevent duplicates return dd; }
public static Ask ReadXml(XElement ele) { var ask = ele.Name.ToString(); switch (ask) { case "AskCheckboxes": return(AskCheckboxes.ReadXml(ele)); case "AskDropdown": return(AskDropdown.ReadXml(ele)); case "AskExtraQuestions": return(AskExtraQuestions.ReadXml(ele)); case "AskGradeOptions": return(AskGradeOptions.ReadXml(ele)); case "AskHeader": return(AskHeader.ReadXml(ele)); case "AskInstruction": return(AskInstruction.ReadXml(ele)); case "AskMenu": return(AskMenu.ReadXml(ele)); case "AskRequest": return(AskRequest.ReadXml(ele)); case "AskSize": return(AskSize.ReadXml(ele)); case "AskSuggestedFee": return(AskSuggestedFee.ReadXml(ele)); case "AskText": return(AskText.ReadXml(ele)); case "AskTickets": return(AskTickets.ReadXml(ele)); case "AskYesNoQuestions": return(AskYesNoQuestions.ReadXml(ele)); case "AskDocuments": return(AskDocuments.ReadXml(ele)); default: return(new Ask(ask)); } }
public new static AskDropdown ReadXml(XElement ele) { var dd = new AskDropdown { Label = ele.Element("Label")?.Value }; foreach (var ee in ele.Elements("DropdownItem")) { dd.list.Add(DropdownItem.ReadXml(ee)); } // todo: prevent duplicates return(dd); }
public AskDropdown ParseAskDropdown() { var dd = new AskDropdown(); dd.Label = GetString("Dropdown"); dd.list = new List<AskDropdown.DropdownItem>(); if (curr.indent == 0) return dd; var startindent = curr.indent; while (curr.indent == startindent) { var i = new AskDropdown.DropdownItem(); if (curr.kw != Parser.RegKeywords.None) throw GetException("unexpected line in Dropdown"); i.Description = GetLine(); i.SmallGroup = i.Description; if (curr.indent <= startindent) { dd.list.Add(i); continue; } var ind = curr.indent; while (curr.indent == ind) { switch (curr.kw) { case RegKeywords.SmallGroup: i.SmallGroup = GetString(i.Description); break; case RegKeywords.Fee: i.Fee = GetDecimal(); break; case RegKeywords.Limit: i.Limit = GetNullInt(); break; case RegKeywords.Time: i.MeetingTime = GetDateTime(); break; default: throw GetException("unexpected line in DropdownItem"); } } dd.list.Add(i); } var q = (from i in dd.list group i by i.SmallGroup into g where g.Count() > 1 select g.Key).ToList(); if (q.Any()) throw GetException($"Duplicate SmallGroup in Dropdown: {string.Join(",", q)}"); return dd; }
public void Output(StringBuilder sb, AskDropdown ask) { if (ask.list == null || ask.list.Count == 0) return; AddValueNoCk(0, sb, "Dropdown", ask.Label); foreach (var i in ask.list) { AddValueCk(1, sb, i.Description); AddValueCk(2, sb, "SmallGroup", i.SmallGroup); AddValueCk(2, sb, "Fee", i.Fee); AddValueCk(2, sb, "Limit", i.Limit); AddValueCk(2, sb, "Time", i.MeetingTime.ToString2("s")); } sb.AppendLine(); }
public new static AskDropdown ReadXml(XElement ele) { var dd = new AskDropdown { Label = ele.Element("Label")?.Value }; foreach (var ee in ele.Elements("DropdownItem")) { if (ee.Element("Description")?.Value != null) { dd.list.Add(DropdownItem.ReadXml(ee)); } } return(dd); }
public new static AskDropdown ReadXml(XElement ele) { var dd = new AskDropdown { TargetExtraValue = ele.Attribute("TargetExtraValue").ToBool(), Label = ele.Element("Label")?.Value, }; foreach (var ee in ele.Elements("DropdownItem")) { if (ee.Element("Description")?.Value != null) { dd.list.Add(DropdownItem.ReadXml(ee)); } } return(dd); }
public static AskDropdown Parse(Parser parser) { var dd = new AskDropdown(); dd.Label = parser.GetString("Dropdown"); dd.list = new List<DropdownItem>(); if (parser.curr.indent == 0) return dd; var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var m = DropdownItem.Parse(parser, startindent); dd.list.Add(m); } var q = (from i in dd.list group i by i.SmallGroup into g where g.Count() > 1 select g.Key).ToList(); if (q.Any()) throw parser.GetException("Duplicate SmallGroup in Dropdown: {0}".Fmt(string.Join(",", q))); return dd; }
private AskSize asksize; // To support old Registration Documents void ParseSection(Parser parser) { switch (parser.curr.kw) { case Parser.RegKeywords.AskParents: case Parser.RegKeywords.AnswersNotRequired: case Parser.RegKeywords.AskSMS: case Parser.RegKeywords.AskDoctor: case Parser.RegKeywords.AskInsurance: case Parser.RegKeywords.AskEmContact: case Parser.RegKeywords.AskAllergies: case Parser.RegKeywords.AskChurch: case Parser.RegKeywords.AskTylenolEtc: case Parser.RegKeywords.AskCoaching: AskItems.Add(Ask.ParseAsk(parser)); break; case Parser.RegKeywords.SpecialScript: SpecialScript = parser.GetString(); break; case Parser.RegKeywords.AskSuggestedFee: AskItems.Add(AskSuggestedFee.Parse(parser)); break; case Parser.RegKeywords.AskTickets: AskItems.Add(AskTickets.Parse(parser)); break; case Parser.RegKeywords.AskRequest: AskItems.Add(AskRequest.Parse(parser)); break; case Parser.RegKeywords.AskHeader: AskItems.Add(AskHeader.Parse(parser)); break; case Parser.RegKeywords.AskInstruction: AskItems.Add(AskInstruction.Parse(parser)); break; case Parser.RegKeywords.Dropdown: case Parser.RegKeywords.AskOptions: case Parser.RegKeywords.ExtraOptions: case Parser.RegKeywords.Dropdown1: case Parser.RegKeywords.Dropdown2: case Parser.RegKeywords.Dropdown3: AskItems.Add(AskDropdown.Parse(parser)); break; case Parser.RegKeywords.MenuItems: AskItems.Add(AskMenu.Parse(parser)); break; case Parser.RegKeywords.ExtraQuestions: AskItems.Add(AskExtraQuestions.Parse(parser)); break; case Parser.RegKeywords.Text: AskItems.Add(AskText.Parse(parser)); break; case Parser.RegKeywords.Checkboxes: case Parser.RegKeywords.Checkboxes2: AskItems.Add(AskCheckboxes.Parse(parser)); break; case Parser.RegKeywords.YesNoQuestions: AskItems.Add(AskYesNoQuestions.Parse(parser)); break; case Parser.RegKeywords.AskGradeOptions: case Parser.RegKeywords.GradeOptions: AskItems.Add(AskGradeOptions.Parse(parser)); break; case Parser.RegKeywords.AskSize: AskItems.Add(AskSize.Parse(parser)); break; case Parser.RegKeywords.MemberOnly: MemberOnly = parser.GetBool(); break; case Parser.RegKeywords.AskMedical: parser.GetBool(); break; case Parser.RegKeywords.AskDonation: AskDonation = parser.GetBool(); break; case Parser.RegKeywords.NoReqBirthYear: NoReqBirthYear = parser.GetBool(); break; case Parser.RegKeywords.NotReqDOB: NotReqDOB = parser.GetBool(); break; case Parser.RegKeywords.NotReqAddr: NotReqAddr = parser.GetBool(); break; case Parser.RegKeywords.NotReqPhone: NotReqPhone = parser.GetBool(); break; case Parser.RegKeywords.NotReqGender: NotReqGender = parser.GetBool(); break; case Parser.RegKeywords.NotReqMarital: NotReqMarital = parser.GetBool(); break; case Parser.RegKeywords.NotReqZip: NotReqZip = parser.GetBool(); break; case Parser.RegKeywords.DonationFundId: DonationFundId = parser.GetNullInt(); break; case Parser.RegKeywords.AccountingCode: AccountingCode = parser.GetString(); break; case Parser.RegKeywords.DonationLabel: DonationLabel = parser.GetString(); break; case Parser.RegKeywords.ExtraValueFeeName: ExtraValueFeeName = parser.GetString(); break; case Parser.RegKeywords.GroupToJoin: GroupToJoin = parser.GetString(); break; case Parser.RegKeywords.AddAsProspect: AddAsProspect = parser.GetBool(); break; case Parser.RegKeywords.LinkGroupsFromOrgs: LinkGroupsFromOrgs = (from i in parser.curr.value.Split(',') where i.ToInt() > 0 select i.ToInt()).ToList(); parser.lineno++; break; case Parser.RegKeywords.ValidateOrgs: ValidateOrgs = parser.curr.value; parser.lineno++; break; case Parser.RegKeywords.Terms: ParseTerms(parser); break; case Parser.RegKeywords.Instructions: ParseInstructions(parser); break; case Parser.RegKeywords.Confirmation: ParseConfirmation(parser); break; case Parser.RegKeywords.ConfirmationTrackingCode: ParseTrackingCode(parser); break; case Parser.RegKeywords.Reminder: ParseReminder(parser); break; case Parser.RegKeywords.SupportEmail: ParseSupport(parser); break; case Parser.RegKeywords.SenderEmail: ParseSender(parser); break; case Parser.RegKeywords.AgeGroups: ParseAgeGroups(parser); break; case Parser.RegKeywords.OrgMemberFees: case Parser.RegKeywords.OrgFees: OrgFees = OrgFees.Parse(parser); break; case Parser.RegKeywords.VoteTags: ParseVoteTags(parser); break; case Parser.RegKeywords.Title: Title = parser.GetString(); break; case Parser.RegKeywords.Shell: Shell = parser.GetString(); break; case Parser.RegKeywords.ShellBs: ShellBs = parser.GetString(); break; case Parser.RegKeywords.Fee: Fee = parser.GetDecimal(); break; // BEGIN support for old Registration Documents case Parser.RegKeywords.GiveOrgMembAccess: parser.GetBool(); break; case Parser.RegKeywords.UseBootstrap: parser.GetBool(); break; case Parser.RegKeywords.AskGrade: parser.GetBool(); parser.GetLabel("Grade"); break; case Parser.RegKeywords.AskShirtSize: parser.GetBool(); asksize = new AskSize(); AskItems.Add(asksize); break; case Parser.RegKeywords.ShirtSizes: asksize.list = AskSize.ParseShirtSizes(parser); break; case Parser.RegKeywords.AllowLastYearShirt: asksize.AllowLastYear = parser.GetBool(); break; case Parser.RegKeywords.ShirtFee: if (asksize == null) { asksize = new AskSize(); AskItems.Add(asksize); } asksize.Fee = parser.GetDecimal(); break; // END support for old Registration Documents case Parser.RegKeywords.Deposit: Deposit = parser.GetDecimal(); break; case Parser.RegKeywords.ExtraFee: ExtraFee = parser.GetDecimal(); break; case Parser.RegKeywords.MaximumFee: MaximumFee = parser.GetDecimal(); break; case Parser.RegKeywords.AllowOnlyOne: AllowOnlyOne = parser.GetBool(); break; case Parser.RegKeywords.OtherFeesAdded: case Parser.RegKeywords.OtherFeesAddedToOrgFee: OtherFeesAddedToOrgFee = parser.GetBool(); break; case Parser.RegKeywords.IncludeOtherFeesWithDeposit: IncludeOtherFeesWithDeposit = parser.GetBool(); break; case Parser.RegKeywords.ApplyMaxToOtherFees: ApplyMaxToOtherFees = parser.GetBool(); break; case Parser.RegKeywords.AllowReRegister: AllowReRegister = parser.GetBool(); break; case Parser.RegKeywords.AllowSaveProgress: AllowSaveProgress = parser.GetBool(); break; case Parser.RegKeywords.TargetExtraValues: TargetExtraValues = parser.GetBool(); break; case Parser.RegKeywords.TimeSlotLockDays: TimeSlotLockDays = parser.GetNullInt(); break; case Parser.RegKeywords.TimeSlots: TimeSlots = TimeSlots.Parse(parser); if (TimeSlotLockDays.HasValue) { TimeSlots.TimeSlotLockDays = TimeSlotLockDays; } break; } }