private void btnSearch_Click(object sender, EventArgs e)
        {
            var keywords = tbSearchField.Text.Replace("\r\n", "").Split(',');

            if (keywords.Length == 0)
            {
                MessageBox.Show("Please input keywords, Separated by commas");
                return;
            }

            var res    = RescueTimeAPI.GetAllActivityData(DateTime.Now.AddMonths(-3), DateTime.Now);
            var result = res.Where(x =>
                                   keywords.Any(s => s.Equals(x.Activity, StringComparison.OrdinalIgnoreCase)) ||
                                   keywords.Any(s => s.Equals(x.Category, StringComparison.OrdinalIgnoreCase)) ||
                                   (x.Activity == "Google Chrome" && keywords.Any(s => s.Equals(x.Document, StringComparison.OrdinalIgnoreCase)))
                                   );
            var strResult = result.GroupBy(x => x.Category).Select(g => new
            {
                Activity  = g.First().Activity,
                Category  = g.Key,
                TimeSpent = g.Sum(x => x.TimeSpent)
            })
                            .Select(s =>
                                    $"Activity: {s.Activity}  Category: {s.Category}  TimeSpent: {s.TimeSpent}"
                                    ).ToList();

            tbSearchResult.DataSource = strResult;
        }
Exemple #2
0
        public void CheckTimeSpendIsExceedByAlertTypeAndPeriodTest()
        {
            List <ApiActivityResponse> MockData = RescueTimeAPI.ConvertStringArrayToClass(jsonString);

            ConfigModel.AlertRule alertRule = new ConfigModel.AlertRule();
            alertRule.Hour         = 1;
            alertRule.Minute       = 0;
            alertRule.AlertType    = EnumModule.AlertType.SpecificCategoryOrActivity;
            alertRule.SpecificName = new string[]
            { "ptt.cc", "ptt.cc - Google Chrome", "PttChrome - Google Chrome", "批踢踢實業坊" };
            alertRule.PeriodName       = new String[] { "全天" };
            alertRule.EnablePeriodName = new string[] { "全天" };
            alertRule.EnableDays       = new List <EnumModule.WeekDays>()
            {
                EnumModule.WeekDays.Monday, EnumModule.WeekDays.Tuesday,
                EnumModule.WeekDays.Wednesday, EnumModule.WeekDays.Thursday, EnumModule.WeekDays.Friday,
                EnumModule.WeekDays.Saturday, EnumModule.WeekDays.Sunday
            };
            bool result = new Alert().CheckTimeSpendIsExceedByAlertTypeAndPeriod(alertRule, MockData);

            Assert.IsInstanceOfType(result, typeof(Boolean));
        }