private void ParseTrackingCode(Parser parser) { ConfirmationTrackingCode = parser.GetString(); if (ConfirmationTrackingCode.HasValue() || parser.curr.indent == 0) { return; } var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { switch (parser.curr.kw) { case Parser.RegKeywords.Html: parser.lineno++; break; case Parser.RegKeywords.Body: ConfirmationTrackingCode = parser.GetString(); break; default: throw parser.GetException("unexpected line"); } } }
private void ParseSender(Parser parser) { parser.lineno++; var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { switch (parser.curr.kw) { case Parser.RegKeywords.Html: parser.lineno++; break; case Parser.RegKeywords.SenderSubject: SenderSubject = parser.GetString(); break; case Parser.RegKeywords.SenderBody: SenderBody = parser.GetString(); break; default: throw parser.GetException("unexpected line in SenderConfirmation"); } } }
private void ParseInstructions(Parser parser) { parser.lineno++; if (parser.curr.indent == 0) { return; } var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { switch (parser.curr.kw) { case Parser.RegKeywords.Html: parser.lineno++; break; case Parser.RegKeywords.Select: InstructionSelect = parser.GetString(); break; case Parser.RegKeywords.Find: InstructionFind = parser.GetString(); break; case Parser.RegKeywords.Options: InstructionOptions = parser.GetString(); break; case Parser.RegKeywords.Special: InstructionSpecial = parser.GetString(); break; case Parser.RegKeywords.Login: InstructionLogin = parser.GetString(); break; case Parser.RegKeywords.Submit: InstructionSubmit = parser.GetString(); break; case Parser.RegKeywords.Sorry: InstructionSorry = parser.GetString(); break; case Parser.RegKeywords.Thanks: ThankYouMessage = parser.GetString(); break; case Parser.RegKeywords.Body: InstructionAll = parser.GetString(); break; default: throw parser.GetException("unexpected line"); } } }
public static AskCheckboxes Parse(Parser parser) { var cb = new AskCheckboxes(); cb.Label = parser.GetString("CheckBoxes"); cb.Min = parser.GetInt(Parser.RegKeywords.Minimum); cb.Max = parser.GetInt(Parser.RegKeywords.Maximum); cb.Cols = parser.GetInt(Parser.RegKeywords.Columns) ?? 1; cb.list = new List <CheckboxItem>(); if (parser.curr.indent == 0) { return(cb); } var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var m = CheckboxItem.Parse(parser, startindent); cb.list.Add(m); } var q = (from i in cb.list where i.SmallGroup != "nocheckbox" where i.SmallGroup != "comment" group i by i.SmallGroup into g where g.Count() > 1 select g.Key).ToList(); if (q.Any()) { throw parser.GetException("Duplicate SmallGroup in Checkboxes: {0}".Fmt(string.Join(",", q))); } return(cb); }
public static AskCheckboxes Parse(Parser parser) { var cb = new AskCheckboxes(); cb.Label = parser.GetString("CheckBoxes"); cb.Min = parser.GetInt(Parser.RegKeywords.Minimum); cb.Max = parser.GetInt(Parser.RegKeywords.Maximum); cb.Cols = parser.GetInt(Parser.RegKeywords.Columns) ?? 1; cb.list = new List<CheckboxItem>(); if (parser.curr.indent == 0) return cb; var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var m = CheckboxItem.Parse(parser, startindent); cb.list.Add(m); } var q = (from i in cb.list where i.SmallGroup != "nocheckbox" where i.SmallGroup != "comment" group i by i.SmallGroup into g where g.Count() > 1 select g.Key).ToList(); if (q.Any()) throw parser.GetException("Duplicate SmallGroup in Checkboxes: {0}".Fmt(string.Join(",", q))); return cb; }
public static List <Size> ParseShirtSizes(Parser parser) { parser.lineno++; var list = new List <Size>(); if (parser.curr.indent == 0) { return(list); } var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var shirtsize = new Size(); if (parser.curr.kw != Parser.RegKeywords.None) { throw parser.GetException("unexpected line"); } shirtsize.Description = parser.GetLine(); shirtsize.SmallGroup = shirtsize.Description; if (parser.curr.indent > startindent) { if (parser.curr.kw != Parser.RegKeywords.SmallGroup) { throw parser.GetException("expected SmallGroup keyword"); } shirtsize.SmallGroup = parser.GetString(shirtsize.SmallGroup); } list.Add(shirtsize); } return(list); }
public static AskMenu Parse(Parser parser) { var mi = new AskMenu(); mi.Label = parser.GetString("Menu"); mi.list = new List <MenuItem>(); if (parser.curr.indent == 0) { return(mi); } var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var m = MenuItem.Parse(parser, startindent); mi.list.Add(m); } var q = (from i in mi.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 MenuItems: {0}".Fmt(string.Join(",", q))); } return(mi); }
public static Size Parse(Parser parser, int startindent) { var i = new Size(); if (parser.curr.kw != Parser.RegKeywords.None) { throw parser.GetException("unexpected line in Size"); } i.Description = parser.GetLine(); i.SmallGroup = i.Description; if (parser.curr.indent <= startindent) { return(i); } var ind = parser.curr.indent; while (parser.curr.indent == ind) { if (parser.curr.kw != Parser.RegKeywords.SmallGroup) { throw parser.GetException("unexpected line in Size"); } i.SmallGroup = parser.GetString(i.Description); } return(i); }
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 void ParseVoteTags(Parser parser) { parser.lineno++; if (parser.curr.indent == 0) { return; } var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { if (parser.curr.kw != Parser.RegKeywords.Display) { throw parser.GetException("unexpected line"); } parser.GetString(); if (parser.curr.indent <= startindent) { throw parser.GetException("expected indented Message,Confirm, or SmallGroup"); } var ind = parser.curr.indent; while (parser.curr.indent == ind) { switch (parser.curr.kw) { case Parser.RegKeywords.Message: parser.GetString(); break; case Parser.RegKeywords.Confirm: parser.GetBool(); break; case Parser.RegKeywords.SmallGroup: parser.GetString(); break; default: throw parser.GetException("unexpected line"); } } } }
private void ParseAgeGroups(Parser parser) { parser.lineno++; if (parser.curr.indent == 0) { return; } var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var agegroup = new AgeGroup(); if (parser.curr.kw != Parser.RegKeywords.None) { throw parser.GetException("unexpected line"); } agegroup.SmallGroup = parser.GetLine(); var m = parser.agerange.Match(agegroup.SmallGroup); if (!m.Success) { parser.lineno--; throw parser.GetException("expected age range like 0-12"); } agegroup.StartAge = m.Groups["start"].Value.ToInt(); agegroup.EndAge = m.Groups["end"].Value.ToInt(); if (parser.curr.indent <= startindent) { throw parser.GetException("expected either indented SmallGroup or Fee"); } var ind = parser.curr.indent; while (parser.curr.indent == ind) { switch (parser.curr.kw) { case Parser.RegKeywords.SmallGroup: agegroup.SmallGroup = parser.GetString(agegroup.SmallGroup); break; case Parser.RegKeywords.Fee: agegroup.Fee = parser.GetDecimal(); break; default: throw parser.GetException("unexpected line"); } } AgeGroups.Add(agegroup); } }
public static AskGradeOptions Parse(Parser parser) { var go = new AskGradeOptions(); go.Label = parser.GetString("AskGradeOptions"); if (parser.curr.indent == 0) throw parser.GetException("expected indented Options"); var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var option = GradeOption.Parse(parser, startindent); if(go.list.All(gg => gg.Code != option.Code)) go.list.Add(option); } return go; }
public static DropdownItem Parse(Parser parser, int startindent) { var i = new DropdownItem(); if (parser.curr.kw != Parser.RegKeywords.None) { throw parser.GetException("unexpected line in Dropdown"); } i.Description = parser.GetLine(); i.SmallGroup = i.Description; if (parser.curr.indent <= startindent) { return(i); } var ind = parser.curr.indent; while (parser.curr.indent == ind) { switch (parser.curr.kw) { case Parser.RegKeywords.SmallGroup: i.SmallGroup = parser.GetString(i.Description); break; case Parser.RegKeywords.Fee: i.Fee = parser.GetDecimal(); break; case Parser.RegKeywords.Limit: i.Limit = parser.GetNullInt(); break; case Parser.RegKeywords.Time: i.MeetingTime = parser.GetDateTime(); break; default: throw parser.GetException("unexpected line in DropdownItem"); } } return(i); }
public static MenuItem Parse(Parser parser, int startindent) { var menuitem = new MenuItem(); if (parser.curr.kw != Parser.RegKeywords.None) { throw parser.GetException("unexpected line in MenuItem"); } menuitem.Description = parser.GetLine(); menuitem.SmallGroup = menuitem.Description; if (parser.curr.indent <= startindent) { return(menuitem); } var ind = parser.curr.indent; while (parser.curr.indent == ind) { switch (parser.curr.kw) { case Parser.RegKeywords.SmallGroup: menuitem.SmallGroup = parser.GetString(menuitem.Description); break; case Parser.RegKeywords.Fee: menuitem.Fee = parser.GetDecimal(); break; case Parser.RegKeywords.Limit: menuitem.Limit = parser.GetNullInt(); break; case Parser.RegKeywords.Time: menuitem.MeetingTime = parser.GetDateTime(); break; default: throw parser.GetException("unexpected line in MenuItem"); } } return(menuitem); }
public static AskGradeOptions Parse(Parser parser) { var go = new AskGradeOptions(); go.Label = parser.GetString("AskGradeOptions"); if (parser.curr.indent == 0) { throw parser.GetException("expected indented Options"); } var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var option = GradeOption.Parse(parser, startindent); if (go.list.All(gg => gg.Code != option.Code)) { go.list.Add(option); } } return(go); }
public static AskMenu Parse(Parser parser) { var mi = new AskMenu(); mi.Label = parser.GetString("Menu"); mi.list = new List<MenuItem>(); if (parser.curr.indent == 0) return mi; var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var m = MenuItem.Parse(parser, startindent); mi.list.Add(m); } var q = (from i in mi.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 MenuItems: {0}".Fmt(string.Join(",", q))); return mi; }
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 static YesNoQuestion Parse(Parser parser, int startindent) { var q = new YesNoQuestion(); if (parser.curr.kw != Parser.RegKeywords.None) { throw parser.GetException("unexpected line"); } q.Question = parser.GetLine(); if (parser.curr.indent <= startindent) { throw parser.GetException("Expected SmallGroup indented"); } if (parser.curr.kw != Parser.RegKeywords.SmallGroup) { throw parser.GetException("Expected SmallGroup keyword"); } if (!parser.curr.value.HasValue()) { throw parser.GetException("Expected SmallGroup value"); } q.SmallGroup = parser.GetString(); return(q); }
private void ParseAgeGroups(Parser parser) { parser.lineno++; if (parser.curr.indent == 0) return; var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var agegroup = new AgeGroup(); if (parser.curr.kw != Parser.RegKeywords.None) throw parser.GetException("unexpected line"); agegroup.SmallGroup = parser.GetLine(); var m = parser.agerange.Match(agegroup.SmallGroup); if (!m.Success) { parser.lineno--; throw parser.GetException("expected age range like 0-12"); } agegroup.StartAge = m.Groups["start"].Value.ToInt(); agegroup.EndAge = m.Groups["end"].Value.ToInt(); if (parser.curr.indent <= startindent) throw parser.GetException("expected either indented SmallGroup or Fee"); var ind = parser.curr.indent; while (parser.curr.indent == ind) { switch (parser.curr.kw) { case Parser.RegKeywords.SmallGroup: agegroup.SmallGroup = parser.GetString(agegroup.SmallGroup); break; case Parser.RegKeywords.Fee: agegroup.Fee = parser.GetDecimal(); break; default: throw parser.GetException("unexpected line"); } } AgeGroups.Add(agegroup); } }
private void ParseTerms(Parser parser) { Terms = parser.GetString(); if (Terms.HasValue() || parser.curr.indent == 0) return; var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { switch (parser.curr.kw) { case Parser.RegKeywords.Html: parser.lineno++; break; case Parser.RegKeywords.Body: Terms = parser.GetString(); break; default: throw parser.GetException("unexpected line"); } } }
private void ParseReminder(Parser parser) { parser.lineno++; var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { switch (parser.curr.kw) { case Parser.RegKeywords.Html: parser.lineno++; break; case Parser.RegKeywords.ReminderSubject: ReminderSubject = parser.GetString(); break; case Parser.RegKeywords.ReminderBody: ReminderBody = parser.GetString(); break; default: throw parser.GetException("unexpected line in Reminder"); } } }
private void ParseInstructions(Parser parser) { parser.lineno++; if (parser.curr.indent == 0) return; var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { switch (parser.curr.kw) { case Parser.RegKeywords.Html: parser.lineno++; break; case Parser.RegKeywords.Select: InstructionSelect = parser.GetString(); break; case Parser.RegKeywords.Find: InstructionFind = parser.GetString(); break; case Parser.RegKeywords.Options: InstructionOptions = parser.GetString(); break; case Parser.RegKeywords.Special: InstructionSpecial = parser.GetString(); break; case Parser.RegKeywords.Login: InstructionLogin = parser.GetString(); break; case Parser.RegKeywords.Submit: InstructionSubmit = parser.GetString(); break; case Parser.RegKeywords.Sorry: InstructionSorry = parser.GetString(); break; case Parser.RegKeywords.Body: InstructionAll = parser.GetString(); break; default: throw parser.GetException("unexpected line"); } } }
void ParseSection(Parser parser) { switch (parser.curr.kw) { case Parser.RegKeywords.AskParents: 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.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.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.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.GiveOrgMembAccess: GiveOrgMembAccess = 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.Reminder: ParseReminder(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.Fee: Fee = parser.GetDecimal(); break; // BEGIN support for old Registration Documents 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.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; } }
public static MenuItem Parse(Parser parser, int startindent) { var menuitem = new MenuItem(); if (parser.curr.kw != Parser.RegKeywords.None) throw parser.GetException("unexpected line in MenuItem"); menuitem.Description = parser.GetLine(); menuitem.SmallGroup = menuitem.Description; if (parser.curr.indent <= startindent) return menuitem; var ind = parser.curr.indent; while (parser.curr.indent == ind) { switch (parser.curr.kw) { case Parser.RegKeywords.SmallGroup: menuitem.SmallGroup = parser.GetString(menuitem.Description); break; case Parser.RegKeywords.Fee: menuitem.Fee = parser.GetDecimal(); break; case Parser.RegKeywords.Limit: menuitem.Limit = parser.GetNullInt(); break; case Parser.RegKeywords.Time: menuitem.MeetingTime = parser.GetDateTime(); break; default: throw parser.GetException("unexpected line in MenuItem"); } } return menuitem; }
public static YesNoQuestion Parse(Parser parser, int startindent) { var q = new YesNoQuestion(); if (parser.curr.kw != Parser.RegKeywords.None) throw parser.GetException("unexpected line"); q.Question = parser.GetLine(); if (parser.curr.indent <= startindent) throw parser.GetException("Expected SmallGroup indented"); if (parser.curr.kw != Parser.RegKeywords.SmallGroup) throw parser.GetException("Expected SmallGroup keyword"); if (!parser.curr.value.HasValue()) throw parser.GetException("Expected SmallGroup value"); q.SmallGroup = parser.GetString(); return q; }
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; } }
public static List<Size> ParseShirtSizes(Parser parser) { parser.lineno++; var list = new List<Size>(); if (parser.curr.indent == 0) return list; var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { var shirtsize = new Size(); if (parser.curr.kw != Parser.RegKeywords.None) throw parser.GetException("unexpected line"); shirtsize.Description = parser.GetLine(); shirtsize.SmallGroup = shirtsize.Description; if (parser.curr.indent > startindent) { if (parser.curr.kw != Parser.RegKeywords.SmallGroup) throw parser.GetException("expected SmallGroup keyword"); shirtsize.SmallGroup = parser.GetString(shirtsize.SmallGroup); } list.Add(shirtsize); } return list; }
public static Size Parse(Parser parser, int startindent) { var i = new Size(); if (parser.curr.kw != Parser.RegKeywords.None) throw parser.GetException("unexpected line in Size"); i.Description = parser.GetLine(); i.SmallGroup = i.Description; if (parser.curr.indent <= startindent) return i; var ind = parser.curr.indent; while (parser.curr.indent == ind) { if (parser.curr.kw != Parser.RegKeywords.SmallGroup) throw parser.GetException("unexpected line in Size"); i.SmallGroup = parser.GetString(i.Description); } return i; }
public static DropdownItem Parse(Parser parser, int startindent) { var i = new DropdownItem(); if (parser.curr.kw != Parser.RegKeywords.None) throw parser.GetException("unexpected line in Dropdown"); i.Description = parser.GetLine(); i.SmallGroup = i.Description; if (parser.curr.indent <= startindent) return i; var ind = parser.curr.indent; while (parser.curr.indent == ind) { switch (parser.curr.kw) { case Parser.RegKeywords.SmallGroup: i.SmallGroup = parser.GetString(i.Description); break; case Parser.RegKeywords.Fee: i.Fee = parser.GetDecimal(); break; case Parser.RegKeywords.Limit: i.Limit = parser.GetNullInt(); break; case Parser.RegKeywords.Time: i.MeetingTime = parser.GetDateTime(); break; default: throw parser.GetException("unexpected line in DropdownItem"); } } return i; }
private void ParseVoteTags(Parser parser) { parser.lineno++; if (parser.curr.indent == 0) return; var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { if (parser.curr.kw != Parser.RegKeywords.Display) throw parser.GetException("unexpected line"); parser.GetString(); if (parser.curr.indent <= startindent) throw parser.GetException("expected indented Message,Confirm, or SmallGroup"); var ind = parser.curr.indent; while (parser.curr.indent == ind) { switch (parser.curr.kw) { case Parser.RegKeywords.Message: parser.GetString(); break; case Parser.RegKeywords.Confirm: parser.GetBool(); break; case Parser.RegKeywords.SmallGroup: parser.GetString(); break; default: throw parser.GetException("unexpected line"); } } } }
private void ParseSupport(Parser parser) { parser.lineno++; var startindent = parser.curr.indent; while (parser.curr.indent == startindent) { switch (parser.curr.kw) { case Parser.RegKeywords.Html: parser.lineno++; break; case Parser.RegKeywords.SupportSubject: SupportSubject = parser.GetString(); break; case Parser.RegKeywords.SupportBody: SupportBody = parser.GetString(); break; default: throw parser.GetException("unexpected line in SupportEmail"); } } }