public bool DeleteReviewProperty(int id) { RepeatRule r = new RepeatRule(); r.create_date = new DateTime(); r.create_user_id = 001; r.end_time = new DateTime(); r.id = 001; r.is_delete = "是"; r.is_strict = "否"; r.modify_date = new DateTime(); r.modify_user_id = 001; r.name = "端午"; r.remark = "中国传统节日"; r.start_time = new DateTime(); RepeatRule r1 = new RepeatRule(); r1.create_date = new DateTime(); r1.create_user_id = 002; r1.end_time = new DateTime(); r1.id = 002; r1.is_delete = "否"; r1.is_strict = "否"; r1.modify_date = new DateTime(); r1.modify_user_id = 002; r1.name = "中秋"; r1.remark = "中国传统节日"; r1.start_time = new DateTime(); return(false); }
public IList <RepeatRule> QueryMaterialReviewRule(string name, string is_strict, string remark) { IList <RepeatRule> R = new BindingList <RepeatRule>(); RepeatRule r1 = new RepeatRule(); RepeatRule r2 = new RepeatRule(); r1.name = "小二"; r1.is_strict = "否"; r1.remark = "古代酒店、客栈服务员"; r1.create_date = new DateTime(); r1.create_user_id = 1023; r1.end_time = new DateTime(); r1.id = 2; r1.is_delete = "是"; r1.modify_date = new DateTime(); r1.modify_user_id = 200089; r1.start_time = new DateTime(); r2.name = "小三"; r2.is_strict = "是"; r2.remark = "全世界女人的公敌"; r2.create_date = new DateTime(); r2.create_user_id = 1045; r2.end_time = new DateTime(); r2.id = 45; r2.is_delete = "是"; r2.modify_date = new DateTime(); r2.modify_user_id = 300046; r2.start_time = new DateTime(); R.Add(r1); R.Add(r2); return(R); }
internal RepeatStatement(RepeatRule outerInstance, int times, Statement statement, Description testDescription) { this._outerInstance = outerInstance; this.Times = times; this.Statement = statement; this.TestName = testDescription.DisplayName; }
private void dgvRule_SelectionChanged(object sender, EventArgs e) { DataGridView dgview = sender as DataGridView; if (dgview.SelectedRows.Count > 0) { RepeatRule rule = dgview.SelectedRows[0].Tag as RepeatRule; var days = rule.GetDays(Year, Month); days.AddRange(getBAMonthsAffairDays(Year, Month, rule)); calendar1.GetSchedules().ForEach(s => { if (s.BackColor != Setting.DutyFieldColor) { s.BackColor = Setting.DutyFieldColor; } if (s.Item != null) { if (days.Any(t => t == s.Start.Day)) { s.BackColor = Setting.DutyHilightColor; } } }); } }
public void ParseMultipleOperators() { var t_Rule = new RepeatRule(new List <IParseRule> { new OperatorRule("+"), new OperatorRule("-") }); var t_Expression = t_Rule.Match(CreateState( new Token(TokenType.Operator, "+"), new Token(TokenType.Operator, "-"), new Token(TokenType.Operator, "+"), new Token(TokenType.Operator, "-"), new Token(TokenType.Operator, "+"), new Token(TokenType.Operator, "-"))); t_Expression .HasError() .Should() .BeFalse(); var t_Expressions = t_Expression.Value.Expressions; t_Expressions.Should().HaveCount(6); }
private void BarButtonItem_Look_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { Rt = (RepeatRule)PartsMange_MaterialReviewRuleManage_MaterialReviewRuleManage_QueryValue_GridView.GetFocusedRow(); AddReviewRule AR = new AddReviewRule(); AR.Tag = "look"; AR.LookRule = Rt; AR.ShowDialog(); }
private void PartsMange_MaterialReviewRuleManage_MaterialReviewRuleManage_Look_SimpleButton_Click(object sender, EventArgs e) { Rt = (RepeatRule)PartsMange_MaterialReviewRuleManage_MaterialReviewRuleManage_QueryValue_GridView.GetFocusedRow(); AddReviewRule AR = new AddReviewRule(); AR.Tag = "look"; AR.LookRule = Rt; AR.ShowDialog(); }
public void RepeatOneCharacter() { var oneCharRule = new LiteralRule("oneChar", null, "g"); var rule = new RepeatRule("Repeat", null, oneCharRule, null, null) as IRule; var match = rule.Match(new ExplorerContext("ggggg")).FirstOrDefault(); Assert.IsNotNull(match, "Success"); Assert.AreEqual(rule.RuleName, match.Rule.RuleName, "Rule"); Assert.AreEqual(5, match.Text.Length, "MatchLength"); Assert.AreEqual(5, ToList(match.ComputeOutput()).Count(), "Contents"); }
private static void LoadRulesElement(int year, int month, Person person, XmlElement p) { RepeatRule rule = null; foreach (XmlElement rs in p.ChildNodes) { foreach (XmlElement r in rs.ChildNodes) { switch (r.Name) { case START: rule = new RepeatRule(year, month, null); rule.Start = DateTime.Parse(r.InnerText); break; case END: if (r.InnerText == "-") { rule.End = DateTime.MaxValue; } else { rule.End = DateTime.Parse(r.InnerText); } break; case REASON: rule.Reason = r.InnerText; break; case ACCESSORY1: rule.Accessory1 = (StandbyList.Accessory) int.Parse(r.InnerText); break; case ACCESSORY2: rule.Accessory2 = (StandbyList.Accessory) int.Parse(r.InnerText); break; case RULECLASS: LoadRuleElement(rule, r); break; case EXHOLIDAY: rule.IsExcludeHoliday = bool.Parse(r.InnerText); break; } } if (rule != null) { person.Requirement.RepeatRule.Add(rule); } } }
/// <summary> /// ルールの削除を実行します /// </summary> /// <param name="target">削除する対象のルール</param> private void DeleteOtherMonthsRules(RepeatRule target) { // 今月よりも先のルールを匿名型(person, date)の形式でリストする。 var plist = StandbyLists.Where(sl => new DateTime(sl.Year, sl.Month, DateTime.DaysInMonth(sl.Year, sl.Month)) > new DateTime(Year, Month, DateTime.DaysInMonth(Year, Month))).Select(st => new { person = st.Persons.FirstOrDefault(p => p.ID == Person.ID), date = new DateTime(st.Year, st.Month, 1) }); // 今月よりも前のルールを匿名型(person, date)の形式でリストする。 var blist = StandbyLists.Where(li => new DateTime(li.Year, li.Month, 1) < new DateTime(Year, Month, 1)).Select(st => new { person = st.Persons.FirstOrDefault(p => p.ID == Person.ID), date = new DateTime(st.Year, st.Month, 1) }); var tdays = target.GetDays(Year, Month); tdays.AddRange(getBAMonthsAffairDays(Year, Month, target)); tdays.Where(tday => tday > 0 && DateTime.DaysInMonth(Year, Month) >= tday).ToList().ForEach(tday => { // 現在対象の個人のRepeatRuleを書き換え var tdate = new DateTime(Year, Month, tday); if (!CheckTargetDate(Year, Month, tday)) { Person[tdate] = PossibleDays.Status.None; } }); // 今月より前のルールの終了日(End)を書き換える blist.ToList().ForEach(b => { if (b.person == null) { return; } var findtarget = b.person.Requirement.RepeatRule.Find(f => f == target); if (findtarget != null) { findtarget.End = new DateTime(Year, Month, 1).AddDays(-1); } }); // 今月より先のルールを削除し、不都合日を削除する plist.ToList().ForEach(p => { if (p.person == null) { return; } p.person.Requirement.RepeatRule.Remove(target); var days = target.GetDays(p.date.Year, p.date.Month); days.Where(day => day > 0 && DateTime.DaysInMonth(p.date.Year, p.date.Month) >= day).ToList().ForEach(day => { var tdate = new DateTime(p.date.Year, p.date.Month, day); if (!CheckTargetDate(tdate.Year, tdate.Month, day)) { p.person[tdate] = PossibleDays.Status.None; } }); }); // 個人のRepeatRuleリストからルールを削除します Person.Requirement.RepeatRule.Remove(target); }
public IList <RepeatRule> rep() { IList <RepeatRule> r = new BindingList <RepeatRule>(); RepeatRule R = new RepeatRule(); RepeatRule Ra = new RepeatRule(); RepeatRule Rb = new RepeatRule(); R.name = "李元霸"; R.remark = "吊丝中的战斗机"; R.is_strict = "否"; R.create_date = new DateTime(); R.create_user_id = 302090; R.end_time = new DateTime(); R.id = 1; R.is_delete = "是"; R.modify_date = new DateTime(); R.modify_user_id = 12; R.start_time = new DateTime(); Ra.name = "程咬金"; Ra.remark = "二逼中的战斗机"; Ra.is_strict = "是"; Ra.create_date = new DateTime(); Ra.create_user_id = 302879; Ra.end_time = new DateTime(); Ra.id = 2; Ra.is_delete = "是"; Ra.modify_date = new DateTime(); Ra.modify_user_id = 15; Ra.start_time = new DateTime(); Rb.name = "宇文成都"; Rb.remark = "战斗机中的战斗机"; Rb.is_strict = "是"; Rb.create_date = new DateTime(); Rb.create_user_id = 302400; Rb.end_time = new DateTime(); Rb.id = 3; Rb.is_delete = "是"; Rb.modify_date = new DateTime(); Rb.modify_user_id = 18; Rb.start_time = new DateTime(); r.Add(R); r.Add(Ra); r.Add(Rb); return(r); }
public void RepeatWithSequenceAndInterleave() { var interleave = new RepeatRule("interleave", null, new LiteralRule(null, null, " "), 0, null); var seq = new SequenceRule("seq", null, new[] { new TaggedRule(new LiteralRule(null, null, "|")), new TaggedRule("t", new LiteralRule(null, null, "a")) }); var rule = new RepeatRule("rep", null, seq, 1, null); var text = "|a | a | a"; var match = rule.Match(new ExplorerContext(text, interleave)).FirstOrDefault(); Assert.IsNotNull(match, "Success"); Assert.AreEqual(rule.RuleName, match.Rule.RuleName, "Rule"); Assert.AreEqual(text.Length, match.Text.Length, "MatchLength"); Assert.AreEqual(3, ToList(match.ComputeOutput()).Count(), "Contents"); }
public IList <RepeatRule> LookOverMaterialReviewRule(int id) { IList <RepeatRule> MR = new BindingList <RepeatRule>(); RepeatRule ra = new RepeatRule(); RepeatRule rb = new RepeatRule(); RepeatRule rc = new RepeatRule(); ra.name = "裴元庆"; ra.remark = "拿手活:金光泻地"; ra.is_strict = "是"; ra.create_date = new DateTime(); ra.create_user_id = 001; ra.end_time = new DateTime(); ra.id = 01; ra.is_delete = "否"; ra.modify_date = new DateTime(); ra.modify_user_id = 10001; ra.start_time = new DateTime(); rb.name = "罗成"; rb.remark = "拿手活:千军斩将"; rb.is_strict = "否"; rb.create_date = new DateTime(); rb.create_user_id = 002; rb.end_time = new DateTime(); rb.id = 02; rb.is_delete = "否"; rb.modify_date = new DateTime(); rb.modify_user_id = 10002; rb.start_time = new DateTime(); rc.name = "李靖"; rc.remark = "拿手活:杀手锏"; rc.is_strict = "否"; rc.create_date = new DateTime(); rc.create_user_id = 003; rc.end_time = new DateTime(); rc.id = 03; rc.is_delete = "否"; rc.modify_date = new DateTime(); rc.modify_user_id = 10003; rc.start_time = new DateTime(); return(MR); }
private void MenuSetRuleClick(object sender, EventArgs e) { var form = new FormRule(); form.Year = Year; form.Month = Month; form.Rule = new RepeatRule(Year, Month, new RepeatRule.MonthRule()); form.Rule.RuleClass.WeekNumber = RepeatRule.GetWeekNo(calendar1.SelectedDate); form.Rule.RuleClass.DayOfWeek = (RepeatRule.DayOfWeek)calendar1.SelectedDate.DayOfWeek; form.Rule.RuleClass.Interval = 0; if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK) { //Person.Requirement.RepeatRule.Add(form.Rule); //AddedRule.Add(form.Rule); setDgv(form.Rule); setRule(form.Rule); } }
private static void LoadRuleElement(RepeatRule rule, XmlElement r) { foreach (XmlElement cls in r.ChildNodes) { switch (cls.Name) { case IDENTIFY: switch ((RepeatRule.Identify) int.Parse(cls.InnerText)) { case RepeatRule.Identify.MonthClass: rule.RuleClass = new RepeatRule.MonthRule(); break; case RepeatRule.Identify.DayClass: case RepeatRule.Identify.WeekClass: case RepeatRule.Identify.YearClass: default: break; } break; case INTERVAL: rule.RuleClass.Interval = int.Parse(cls.InnerText); break; case BDOW: rule.RuleClass.IsByDayOfWeek = bool.Parse(cls.InnerText); break; case WEEKNO: rule.RuleClass.WeekNumber = (RepeatRule.WeekNo) int.Parse(cls.InnerText); break; case DOW: rule.RuleClass.DayOfWeek = (RepeatRule.DayOfWeek) int.Parse(cls.InnerText); break; case AFFAIR_BA: rule.RuleClass.AffairBA = (RepeatRule.AffairBA) int.Parse(cls.InnerText); break; } } }
/// <summary> /// 前後の月の不都合日を検索して、今月の不都合日に設定すべき日を取得します /// </summary> /// <param name="Year">不都合日を取得する対象の年</param> /// <param name="Month">不都合日を取得する対象の月</param> /// <param name="rule">不都合日を設定するルールを格納したRepeatRuleオブジェクト</param> /// <returns></returns> private List <int> getBAMonthsAffairDays(int Year, int Month, RepeatRule rule) { var days = new List <int>(); var nextmonth = new DateTime(Year, Month, DateTime.DaysInMonth(Year, Month)).AddDays(1); var prevmonth = new DateTime(Year, Month, 1).AddDays(-1); var eprevdays = rule.GetDays(prevmonth.Year, prevmonth.Month).Where(t => { return(t > DateTime.DaysInMonth(prevmonth.Year, prevmonth.Month)); }).Select(t => { return(new DateTime(prevmonth.Year, prevmonth.Month, 1).AddDays(t - 1).Day); }); var enextdays = rule.GetDays(nextmonth.Year, nextmonth.Month).Where(t => t < 1).Select(t => nextmonth.AddDays(t - 1).Day); days.AddRange(eprevdays); days.AddRange(enextdays); return(days); }
private void setDgv(RepeatRule rule) { var row = new DataGridViewRow(); row.CreateCells(dgvRule); row.Tag = rule; if (rule.RuleClass.Interval != 0) { if (rule.RuleClass.WeekNumber != RepeatRule.WeekNo.All) { row.Cells[(int)RuleIndex.Rule].Value = string.Format("{0}ヶ月おき/第{1}週/{2}", rule.RuleClass.Interval, (int)rule.RuleClass.WeekNumber, rule.RuleClass.DayOfWeek); } else { row.Cells[(int)RuleIndex.Rule].Value = string.Format("{0}ヶ月おき/毎週/{1}", rule.RuleClass.Interval, rule.RuleClass.DayOfWeek); } } else { if (rule.RuleClass.WeekNumber != RepeatRule.WeekNo.All) { row.Cells[(int)RuleIndex.Rule].Value = string.Format("毎月/第{0}週/{1}", (int)rule.RuleClass.WeekNumber, rule.RuleClass.DayOfWeek); } else { row.Cells[(int)RuleIndex.Rule].Value = string.Format("毎月/毎週/{0}", rule.RuleClass.DayOfWeek); } } row.Cells[(int)RuleIndex.Reason].Value = rule.Reason; if (rule.End != DateTime.MaxValue) { row.Cells[(int)RuleIndex.Limit].Value = string.Format("{0}年{1}月~{2}年{3}月", rule.Start.Year, rule.Start.Month, rule.End.Year, rule.End.Month); } else { row.Cells[(int)RuleIndex.Limit].Value = string.Format("{0}年{1}月~", rule.Start.Year, rule.Start.Month); } row.Cells[(int)RuleIndex.AddedAffair].Value = rule.RuleClass.AffairBA.ToString(); dgvRule.Rows.Add(row); dgvRule.Rows[dgvRule.Rows.Count - 1].Selected = true; }
private void DeleteFromCalendar(RepeatRule target) { // dgvRuleで選択中のRowとそれに対応するRuleを削除する dgvRule.Rows.Remove(dgvRule.SelectedRows[0]); // 現在表示中のカレンダーの不都合日表示のみ削除する。(実際に削除するのはダイアログがOKされた時) var pdays = target.GetDays(Year, Month); pdays.AddRange(getBAMonthsAffairDays(Year, Month, target)); pdays.Where(pday => pday > 0 && pday <= DateTime.DaysInMonth(Year, Month)).ToList().ForEach(pday => { var targetdate = new DateTime(Year, Month, pday); if (!CheckTargetDate(Year, Month, pday)) { // 指定した日にちを対象とするルールが存在しなければカレンダーから削除 var schedule = calendar1.GetSchedule(targetdate); CalendarControl.Schedule item = new CalendarControl.Schedule(); item.Start = targetdate; calendar1.RemoveSchedule(item.Start); } }); }
public void RepeatCharacterWithCardinality() { var oneCharRule = new LiteralRule("oneChar", null, "g"); var testSet = new[] { Tuple.Create <string, int?, int?, bool>("gg", 2, 2, true), Tuple.Create <string, int?, int?, bool>("gg", 1, 2, true), Tuple.Create <string, int?, int?, bool>("gg", null, 2, true), Tuple.Create <string, int?, int?, bool>("gg", 2, null, true), Tuple.Create <string, int?, int?, bool>("ggg", 2, 2, false), Tuple.Create <string, int?, int?, bool>("ggg", 2, 3, true), Tuple.Create <string, int?, int?, bool>("g", 2, 2, false), Tuple.Create <string, int?, int?, bool>("g", 2, 3, false) }; for (int i = 0; i != testSet.Length; ++i) { var text = testSet[i].Item1; var min = testSet[i].Item2; var max = testSet[i].Item3; var isSuccess = testSet[i].Item4; var rule = new RepeatRule("Repeat", null, oneCharRule, min, max) as IRule; var match = rule.Match(new ExplorerContext(text)).FirstOrDefault(); if (!isSuccess) { Assert.IsTrue( match == null || match.Text.Length != text.Length, $"Test case #{i} should have failed"); } else { Assert.IsNotNull(match, $"Success - {i}"); Assert.AreEqual(rule.RuleName, match.Rule.RuleName, $"Rule - {i}"); Assert.AreEqual(text.Length, match.Text.Length, $"MatchLength - {i}"); Assert.AreEqual(text.Length, ToList(match.ComputeOutput()).Count(), $"Contents - {i}"); } } }
public void ParseTrivialMathExpression() { var t_RepeatRule = new RepeatRule(new List <IParseRule> { new MultiAttemptRule(new List <IParseRule> { new OperatorRule("+"), new OperatorRule("-"), new OperatorRule("*"), new OperatorRule("/"), new OperatorRule("^") }), new NumericalLiteralRule() }); var t_PatternRule = new RulePatternRule(new List <IParseRule> { new NumericalLiteralRule(), t_RepeatRule }); var t_Expression = t_PatternRule.Match(CreateState( new Token(TokenType.Literal, "2"), new Token(TokenType.Operator, "+"), new Token(TokenType.Literal, "3"), new Token(TokenType.Operator, "-"), new Token(TokenType.Literal, "4"), new Token(TokenType.Operator, "*"), new Token(TokenType.Literal, "5"), new Token(TokenType.Operator, "/"), new Token(TokenType.Literal, "6"))); t_Expression.HasError().Should().BeFalse(); var t_Expressions = t_Expression.Value.Expressions; t_Expressions.Should().HaveCount(9); }
private void setRule(RepeatRule rule) { // ルールに則ってカレンダーに不都合日を設定する var days = rule.GetDays(Year, Month); days.AddRange(getBAMonthsAffairDays(Year, Month, rule)); days.Where(day => day > 0 && day <= DateTime.DaysInMonth(Year, Month)).ToList().ForEach(day => { DateTime target = new DateTime(Year, Month, day); var schedule = calendar1.GetSchedule(target); CalendarControl.Schedule item = new CalendarControl.Schedule(); item.Start = target; if (schedule.Count() == 0) { item.Item = "×"; item.Alignment = StringAlignment.Center; calendar1.RemoveSchedule(item.Start); calendar1.AddSchedule(item); } }); AddedRule.Add(rule); }
private void SetOtherMonthsAffair(RepeatRule rule) { var list = StandbyLists.Where(p => rule.Start <= new DateTime(p.Year, p.Month, 1) && rule.End > new DateTime(p.Year, p.Month, DateTime.DaysInMonth(p.Year, p.Month))).Select(q => new { date = new DateTime(q.Year, q.Month, 1), person = q.Persons.FirstOrDefault(r => r.ID == Person.ID) }); list.ToList().ForEach(u => { // 現在の月はすでに不都合日設定してあるため、飛ばす。 if (u.date.Year == Year && u.date.Month == Month) { return; } if (u.person == null) { return; } u.person.Requirement.RepeatRule.Add(rule); var days = rule.GetDays(u.date.Year, u.date.Month); days.AddRange(getBAMonthsAffairDays(u.date.Year, u.date.Month, rule)); days.Where(day => day > 0 && day <= DateTime.DaysInMonth(u.date.Year, u.date.Month)).ToList().ForEach(day => { u.person[new DateTime(u.date.Year, u.date.Month, day)] = PossibleDays.Status.Affair; }); }); }
private Rule Interpret(Grammar grammar, ISemanticNode node) { Rule rule = null; if (node is BranchSemanticNode branch) { switch ((EbnfNodeType)branch.NodeType) { case EbnfNodeType.Group: rule = Interpret(grammar, branch.Children[0]); break; case EbnfNodeType.Repeat: rule = new RepeatRule(grammar, Interpret(grammar, branch.Children[0])); break; case EbnfNodeType.Optional: rule = new OptionalRule(grammar, Interpret(grammar, branch.Children[0])); break; case EbnfNodeType.Not: rule = new NotRule(grammar, Interpret(grammar, branch.Children[0])); break; case EbnfNodeType.And: rule = new AndRule(grammar, branch.Children.Select(child => Interpret(grammar, child))); break; case EbnfNodeType.Or: rule = new OrRule(grammar, branch.Children.Select(child => Interpret(grammar, child))); break; case EbnfNodeType.None: rule = Interpret(grammar, branch.Children.Single()); break; case EbnfNodeType.Root: case EbnfNodeType.Rule: case EbnfNodeType.Token: default: throw new Exception(); } } else if (node is LeafSemanticNode leaf) { switch ((EbnfNodeType)leaf.NodeType) { case EbnfNodeType.Identifier: rule = grammar.ReferenceRule(leaf.Value); break; case EbnfNodeType.String: case EbnfNodeType.Regex: break; default: throw new Exception(); } } if (rule == null) { throw new Exception(); } else { return(rule); } }
private void btnOK_Click(object sender, EventArgs e) { var monthrule = new RepeatRule.MonthRule(); monthrule.IsByDayOfWeek = true; switch (cmbWeekNo.SelectedIndex) { case 0: monthrule.WeekNumber = RepeatRule.WeekNo.First; break; case 1: monthrule.WeekNumber = RepeatRule.WeekNo.Second; break; case 2: monthrule.WeekNumber = RepeatRule.WeekNo.Third; break; case 3: monthrule.WeekNumber = RepeatRule.WeekNo.Forth; break; case 4: monthrule.WeekNumber = RepeatRule.WeekNo.Fifth; break; case 5: monthrule.WeekNumber = RepeatRule.WeekNo.All; break; default: monthrule.WeekNumber = RepeatRule.WeekNo.None; break; } switch (cmbDayOfWeek.SelectedIndex) { case 0: monthrule.DayOfWeek = RepeatRule.DayOfWeek.日; break; case 1: monthrule.DayOfWeek = RepeatRule.DayOfWeek.月; break; case 2: monthrule.DayOfWeek = RepeatRule.DayOfWeek.火; break; case 3: monthrule.DayOfWeek = RepeatRule.DayOfWeek.水; break; case 4: monthrule.DayOfWeek = RepeatRule.DayOfWeek.木; break; case 5: monthrule.DayOfWeek = RepeatRule.DayOfWeek.金; break; case 6: monthrule.DayOfWeek = RepeatRule.DayOfWeek.土; break; case 7: monthrule.DayOfWeek = RepeatRule.DayOfWeek.土日; break; default: break; } if (radio1.Checked) { monthrule.AffairBA = RepeatRule.AffairBA.None; } else if (radio2.Checked) { monthrule.AffairBA = RepeatRule.AffairBA.Before; } else if (radio3.Checked) { monthrule.AffairBA = RepeatRule.AffairBA.After; } else if (radio4.Checked) { monthrule.AffairBA = RepeatRule.AffairBA.Both; } monthrule.Interval = cmbInterval.SelectedIndex; Rule = new RepeatRule(Year, Month, monthrule); Rule.Start = dateTimePicker1.Value; if (chkUseEnd.Checked) { Rule.End = dateTimePicker2.Value; } else { Rule.End = DateTime.MaxValue; } Rule.Reason = txtReason.Text; Rule.IsExcludeHoliday = chkHoliday.Checked; if (radioNone1.Checked) { Rule.Accessory1 = Accessory.None; } else if (radioDay1.Checked) { Rule.Accessory1 = Accessory.Day; } else if (radioNight1.Checked) { Rule.Accessory1 = Accessory.Night; } else if (radioDayAndNight1.Checked) { Rule.Accessory1 = Accessory.DayAndNight; } else if (radioHD1.Checked) { Rule.Accessory1 = Accessory.HD; } if (radioNone2.Checked) { Rule.Accessory2 = Accessory.None; } else if (radioDay2.Checked) { Rule.Accessory2 = Accessory.Day; } else if (radioNight2.Checked) { Rule.Accessory2 = Accessory.Night; } else if (radioDayAndNight2.Checked) { Rule.Accessory2 = Accessory.DayAndNight; } else if (radioHD2.Checked) { Rule.Accessory2 = Accessory.HD; } DialogResult = DialogResult.OK; Close(); }