コード例 #1
0
ファイル: IcsImporter.cs プロジェクト: huamanhtuyen/VNACCS
        /// <summary>
        /// Parses line attribute data
        /// </summary>
        /// <param name="list"></param>
        /// <param name="s"></param>
        private void ParseAttributeData(List<AttributeData> list, ref string s)
        {
            Regex p = new Regex("\\s*;\\s*(?<id>\\w+)\\s*=\\s*((?<value>\"[^\"]*\")|(?<value>[^;:]+))");
            MatchCollection mc = p.Matches(s);

            if (mc.Count > 0)
            {
                for (int i = 0; i < mc.Count; i++)
                {
                    AttributeData attr = new
                        AttributeData(mc[i].Groups["id"].Value, mc[i].Groups["value"].Value);

                    list.Add(attr);
                }

                s = s.Substring(mc[mc.Count - 1].Index + mc[mc.Count - 1].Length);
            }
        }
コード例 #2
0
ファイル: IcsImporter.cs プロジェクト: huamanhtuyen/VNACCS
        /// <summary>
        /// Processes Interval= attribute entries
        /// </summary>
        /// <param name="entry"></param>
        /// <param name="rrule"></param>
        /// <param name="attr"></param>
        private void ProcessInterval(CalendarEntry entry, RRule rrule, AttributeData attr)
        {
            int n;

            if (int.TryParse(attr.Value, out n) == false)
            {
                n = 1;
                ReportError(entry, String.Format("\"{0}\" is not a valid INTERVAL value", attr.Value));
            }

            rrule.Interval = n;
        }
コード例 #3
0
ファイル: IcsImporter.cs プロジェクト: huamanhtuyen/VNACCS
 /// <summary>
 /// Processes Until= attribute entries
 /// </summary>
 /// <param name="entry"></param>
 /// <param name="rrule"></param>
 /// <param name="attr"></param>
 private void ProcessUntil(CalendarEntry entry, RRule rrule, AttributeData attr)
 {
     rrule.Until = (attr.Value.Length > 8)
                       ? ProcessDateTime(entry, attr.Value)
                       : ProcessDateValue(entry, attr.Value);
 }
コード例 #4
0
ファイル: IcsImporter.cs プロジェクト: huamanhtuyen/VNACCS
        /// <summary>
        /// Processes Freq= attribute entries
        /// </summary>
        /// <param name="entry"></param>
        /// <param name="rrule"></param>
        /// <param name="attr"></param>
        private void ProcessFreq(CalendarEntry entry, RRule rrule, AttributeData attr)
        {
            ValueToken tkn = (ValueToken)GetToken(_values, attr.Value);

            switch (tkn)
            {
                case ValueToken.Secondly:
                    rrule.Freq = Frequency.Secondly;
                    break;

                case ValueToken.Minutely:
                    rrule.Freq = Frequency.Minutely;
                    break;

                case ValueToken.Hourly:
                    rrule.Freq = Frequency.Hourly;
                    break;

                case ValueToken.Daily:
                    rrule.Freq = Frequency.Daily;
                    break;

                case ValueToken.Weekly:
                    rrule.Freq = Frequency.Weekly;
                    break;

                case ValueToken.Monthly:
                    rrule.Freq = Frequency.Monthly;
                    break;

                case ValueToken.Yearly:
                    rrule.Freq = Frequency.Yearly;
                    break;

                default:
                    ReportError(entry, "Invalid FREQ value");
                    rrule.Freq = Frequency.Daily;
                    break;
            }
        }