private void UserControl_Loaded(object sender, RoutedEventArgs e)
 {
     MySchedule.loadAllSchedule();
     MyTask.loadAllTasks();
     drawScheduleCards();
     drawTaskCards();
 }
Esempio n. 2
0
    static void Main(string[] args)
    {
        var scheduler = MySchedule.GetValue();

        Console.WriteLine("Scheduler started. Press [Enter] to quit.");
        Console.ReadLine();
    }
        public void ScheduleTest()
        {
            var timeEvent = new MySchedule {
                Title = "Test title"
            };

            Assert.Equal("Test title", timeEvent.Title);
        }
 private void MenuButton_Click(object sender, RoutedEventArgs e)
 {
     MySchedule.removeAllSchedule();
     MyTask.clearAllTasks();
     TreeSession.clearAllTrees();
     Task.Factory.StartNew(() => Thread.Sleep(1000)).ContinueWith(t =>
     {
         MainWindowViewModel.MainSnackbarMessageQueue?.Enqueue("清除缓存成功");
     }, TaskScheduler.FromCurrentSynchronizationContext());
 }
Esempio n. 5
0
        public async Task <IActionResult> MySchedule()
        {
            var user = await GetCurrentUserAsync();

            MySchedule mySchedule = new MySchedule();

            mySchedule.activities = await _context.Activity
                                    .Where(a => a.UserId == user.Id)
                                    .ToListAsync();

            mySchedule.gatherings = await _context.Gathering
                                    .Where(g => g.GatheringUsers.Any(gu => gu.UserId == user.Id))
                                    .ToListAsync();

            return(Ok(mySchedule));
        }
        public SetSchedulePage(Plug p, MySchedule s)
        {
            InitializeComponent();
            myschedule = new MySchedule();
            myschedule = s;
            _index     = p.MyPlugState.MyScheduleList.IndexOf(s);
            connection = Websockets.WebSocketFactory.Create();
            //Exclude schedule from List
            p.MyPlugState.MyScheduleList.Remove(s);
            plug = new Plug();

            plug              = p;
            Helper            = new ScheduleHelperClass();
            StepValue         = 1.0;
            IsOnPreviousState = true;


            SetValuesFromPreviousState(s);
        }
        private void SetValuesFromPreviousState(MySchedule s)
        {
            List <string> days = s.Days.Split(' ').ToList();

            foreach (var v in days)
            {
                if (string.Equals(v, L10n.Localize("MonLabel")))
                {
                    MonSwitch.IsToggled = true;
                }
                else if (string.Equals(v, L10n.Localize("TueLabel")))
                {
                    TueSwitch.IsToggled = true;
                }
                else if (string.Equals(v, L10n.Localize("WedLabel")))
                {
                    WedSwitch.IsToggled = true;
                }
                else if (string.Equals(v, L10n.Localize("ThuLabel")))
                {
                    ThuSwitch.IsToggled = true;
                }
                else if (string.Equals(v, L10n.Localize("FriLabel")))
                {
                    FriSwitch.IsToggled = true;
                }
                else if (string.Equals(v, L10n.Localize("SatLabel")))
                {
                    SatSwitch.IsToggled = true;
                }
                else if (string.Equals(v, L10n.Localize("SunLabel")))
                {
                    SunSwitch.IsToggled = true;
                }
            }



            var fromt = Helper.StringToQt(s.FromTime);
            var tot   = Helper.StringToQt(s.ToTime);

            InitializeValues(fromt, tot);
        }
Esempio n. 8
0
        public void drawplanGrid()
        {
            planGrid.Children.Clear();
            planGrid.RowDefinitions.Clear();

            Dictionary <Guid, MySchedule> schdic = MySchedule.getSchedulesofDay(DateTime.Now);

            foreach (KeyValuePair <Guid, MySchedule> kvp in schdic)
            {
                double ah          = planGrid.ActualHeight;
                double upperMargin = 0;
                double lowerMargin = 0;

                double schedulestartsecond = (kvp.Value.Start - kvp.Value.Start.Date).TotalSeconds;
                double scheduleendsecond   = (kvp.Value.Start - kvp.Value.Start.Date + kvp.Value.Duration).TotalSeconds;

                if (startsecond < schedulestartsecond)
                {
                    upperMargin = (schedulestartsecond - startsecond) / (endsecond - startsecond) * ah;
                }
                if (scheduleendsecond < endsecond)
                {
                    lowerMargin = (endsecond - scheduleendsecond) / (endsecond - startsecond) * ah;
                }


                Button b = new Button();
                b.Tag = kvp.Value;
                planGrid.Children.Add(b);

                b.Margin = new Thickness(5, upperMargin + 2, 3, lowerMargin + 2);
                b.Height = double.NaN;
                SolidColorBrush c = new SolidColorBrush(Color.FromArgb(200, (byte)(kvp.Value.Title.GetHashCode()), (byte)(kvp.Value.Title.GetHashCode() / 256), 255));
                b.Background  = c;
                b.BorderBrush = c;
                b.Content     = kvp.Value.Title;
            }
        }
Esempio n. 9
0
        private void SetMySchedules(int i, int j)
        {
            var myschedule = new MySchedule();

            if (MyScheduleList.Count == i)
            {
                myschedule.FromTime = QtToTime(firstPosition[j]);
                myschedule.ToTime   = QtToTime(lastPosition[j]);
                myschedule.Days     = daysList[j];

                MyScheduleList.Add(myschedule);
            }
            else if (StringToQt(MyScheduleList[i].FromTime) == firstPosition[j] &&
                     StringToQt(MyScheduleList[i].ToTime) == lastPosition[j])
            {
                MyScheduleList[i].Days += $" {daysList[j]}";
            }
            else
            {
                i++;
                SetMySchedules(i, j);
            }
        }
        private void CreateScheduleButton_Click(object sender, RoutedEventArgs e)
        {
            string   title     = ScheduleNameInputBox.Text;
            DateTime?starttime = ScheduleStartTimerPicker.SelectedTime;
            DateTime?endtime   = ScheduleEndTimerPicker.SelectedTime;
            int      repeat    = ScheduleRepeatBox.SelectedIndex;
            int      remind    = ScheduleRemindBox.SelectedIndex;

            if (title.Length == 0)
            {
                MessageBox.Show("请输入日程标题!");
                return;
            }
            if (starttime == null)
            {
                MessageBox.Show("请选择日程开始时间!");
                return;
            }
            if (endtime == null)
            {
                MessageBox.Show("请选择日程结束时间!");
                return;
            }
            if (remind == -1)
            {
                MessageBox.Show("请选择提醒方式!");
                return;
            }
            if (repeat == -1)
            {
                MessageBox.Show("请选择重复周期!");
                return;
            }

            if (starttime >= endtime)
            {
                MessageBox.Show("结束时间必须在开始时间之后!");
                return;
            }

            DateTime startday = DateTime.Now.Date;

            if (!TodayToStart)
            {
                if (ScheduleCalendar.SelectedDate == null)
                {
                    MessageBox.Show("请选择一个开始日期!");
                    return;
                }
                startday = ScheduleCalendar.SelectedDate.Value;
            }

            MySchedule.AddSchedule(new MySchedule
            {
                Title      = title,
                Start      = startday.Date + starttime.Value.TimeOfDay,
                Duration   = endtime.Value - starttime.Value,
                Repeat     = (Freq)repeat,
                remindMode = (RemindMode)remind
            });
            ScheduleNameInputBox.Text             = null;
            ScheduleStartTimerPicker.SelectedTime = null;
            ScheduleEndTimerPicker.SelectedTime   = null;
            ScheduleRepeatBox.SelectedIndex       = -1;
            ScheduleRemindBox.SelectedIndex       = -1;
            ScheduleFlipper.IsFlipped             = false;
            drawScheduleCards();
        }
 private void CancelAll_Click(object sender, RoutedEventArgs e)
 {
     MySchedule.removeScheduleAll((Guid)(((Button)sender).Tag));
     drawScheduleCards();
 }
        private void drawScheduleCards()
        {
            //标题上只要一个题目和一个大致的开始时间。
            //展开后,里面的字符串为:
            //开始时间:
            //结束时间:
            //重复周期:
            //提醒:未设置之类的
            //按钮:本次提前结束
            //按钮:永久结束
            //这些按钮里面应该对应着GUID的,所以就能取消到。
            ScheduleShowerPanel.Orientation = Orientation.Vertical;
            ScheduleShowerPanel.Children.Clear();


            List <Guid> guids = MySchedule.getAllActiveSchedules();

            foreach (Guid guid in guids)
            {
                MySchedule sched = MySchedule.getActiveSchedule(guid);


                Expander  expd   = new Expander();
                DockPanel header = new DockPanel();
                TextBlock tb1    = new TextBlock();
                tb1.Text = sched.Title;
                TextBlock tb2 = new TextBlock();
                tb2.Text = sched.Start.ToString("yyyy-MM-dd");
                tb2.HorizontalAlignment = HorizontalAlignment.Right;
                header.Children.Add(tb1);
                header.Children.Add(tb2);
                expd.Header = header;


                StackPanel sp = new StackPanel();
                sp.Orientation = Orientation.Vertical;


                TextBlock tb3 = new TextBlock();
                tb3.Text   = "开始时间:" + sched.Start.ToString("yyyy-MM-dd HH:mm:ss");
                tb3.Margin = new Thickness(24, 0, 24, 0);
                sp.Children.Add(tb3);

                TextBlock tb4 = new TextBlock();
                tb4.Text   = "结束时间:" + (sched.Start + sched.Duration).ToString("yyyy-MM-dd HH:mm:ss");
                tb4.Margin = new Thickness(24, 0, 24, 0);
                sp.Children.Add(tb4);

                TextBlock tb5 = new TextBlock();
                tb5.Text   = "重复:" + chongfu[(int)sched.Repeat];
                tb5.Margin = new Thickness(24, 0, 24, 0);
                sp.Children.Add(tb5);

                TextBlock tb6 = new TextBlock();
                tb6.Text   = "提醒模式:" + tixing[(int)sched.remindMode];
                tb6.Margin = new Thickness(24, 0, 24, 8);
                sp.Children.Add(tb6);

                Grid lsp = new Grid();
                lsp.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });
                lsp.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });

                Button bt = new Button();
                bt.Tag     = guid;
                bt.Click  += CancelOnce_Click;
                bt.Content = "本次提前结束";//一个结束本次,一个永久结束,对于可以重复的schedule来说,这两个是不一样的。
                lsp.Children.Add(bt);
                bt.SetValue(Grid.ColumnProperty, 0);
                Button bt2 = new Button();
                bt2.Tag     = guid;
                bt2.Click  += CancelAll_Click;
                bt2.Content = "永久取消日程";//一个结束本次,一个永久结束,对于可以重复的schedule来说,这两个是不一样的。
                lsp.Children.Add(bt2);
                bt2.SetValue(Grid.ColumnProperty, 1);
                sp.Children.Add(lsp);

                expd.Content = sp;

                MaterialDesignThemes.Wpf.ColorZone cz = new MaterialDesignThemes.Wpf.ColorZone();
                cz.Margin  = new Thickness(3, 5, 3, 5);
                cz.Content = expd;

                ScheduleShowerPanel.Children.Add(cz);
            }
        }