public ObservableCollection <ParaListory> Handle(DateTime startTime, DateTime stopTime, string tbParaCode)
        {
            List <BsonDocument> finallyData = new List <BsonDocument>();
            // ObservableCollection<ParaListory> paraList = new ObservableCollection<ParaListory>();
            ObservableCollection <ParaListory> paraResultList = new ObservableCollection <ParaListory>();

            int t1 = UTCHelper.ConvertDateTimeToInt(startTime);
            int t2 = UTCHelper.ConvertDateTimeToInt(stopTime);

            //   Console.WriteLine(t1);
            // Console.WriteLine(t2);
            //ObservableCollection<ParaListory> paraResultList = ShowValues.ShowProjectValueAndSourceValue();
            //DisplayValues.ItemsSource = paraResultList;  //显示查询结果

            finallyData = TimeServer.TimeRangeJudgment(t1, t2, tbParaCode, 1000);


            foreach (var item in finallyData)
            {
                paraResultList.Add(new ParaListory(UTCHelper.ConvertIntToDateTime(item[4].ToDouble()), item[2].ToString(), item[3].ToString()));  //item[4] 时间
            }


            return(paraResultList);



            ///////////////////////////////////////////////////////////////////////////////////
        }
Exemple #2
0
        public WpfTimeViewWindow()
        {
            InitializeComponent();

            _24Hour = AppSettings.Instance.MilitaryTime == "true";

            if (_24Hour)
            {
                TwentyFourHourButton.Background = Brushes.LightSkyBlue;
                TwelveHourButton.Background     = Brushes.Transparent;
            }
            else
            {
                TwelveHourButton.Background     = Brushes.LightSkyBlue;
                TwentyFourHourButton.Background = Brushes.Transparent;
            }

            _min = DataBaseManager.Instance.MinDate();

            _max = DataBaseManager.Instance.MaxDate();

            _baseDate = DataBaseManager.Instance.CurrentDay().Date;

            InitTimes(TimeServer.StartEndWeek(_baseDate));
        }
Exemple #3
0
        private void InitTimes(List <DateTime> startEnd)
        {
            StackPanel.Children.Clear();
            double totalHours = TimeServer.DecToQuarter(DataBaseManager.Instance.HoursInRange(startEnd[0], startEnd[1]).TotalHours);

            if (DateTimeFormatInfo.CurrentInfo != null)
            {
                WpfWeekViewBar weekViewBar = new WpfWeekViewBar(startEnd[0], totalHours);
                weekViewBar.DeleteWeekEvent  += OnDeleteWeek;
                weekViewBar.EmailWeekEvent   += HtmlTimeReporter.OnEmailWeek;
                weekViewBar.PreviewWeekEvent += HtmlTimeReporter.OnPreviewWeek;
                StackPanel.Children.Add(weekViewBar);
            }

            Day prev = new Day(new DateTime(2001, 1, 1));

            foreach (Day day in DataBaseManager.Instance.DaysInRange(startEnd[0], startEnd[1]))
            {
                WpfDayViewBar datevViewBar = new WpfDayViewBar(day);
                datevViewBar.DayClickEvent  += OnDateViewClick;
                datevViewBar.DeleteDayEvent += OnDeleteDayClick;
                StackPanel.Children.Add(datevViewBar);
                foreach (Time time in day.Times)
                {
                    WpfTimeViewBar timeView = new WpfTimeViewBar(time, _24Hour);
                    timeView.TimeDeleteEvent += TimeDeleteTime;
                    timeView.TimeClickEvent  += TimeViewTimeClick;
                    StackPanel.Children.Add(timeView);
                }

                prev = day;
            }

            TotalTime.Content = totalHours;
        }
Exemple #4
0
        private void InitualizeView()
        {
            StackPanel.Children.Clear();

            var a = TimeServer.StartEndWeek(_currentDate)[0];
            var b = TimeServer.StartEndWeek(_currentDate)[1];

            double         hoursInWeek = DataBaseManager.Instance.HoursInRange(a, b).TotalHours;
            WpfWeekViewBar weekViewBar = new WpfWeekViewBar(a, TimeServer.DecToQuarter(hoursInWeek))
            {
                Deletable = false
            };

            weekViewBar.EmailWeekEvent   += HtmlTimeReporter.OnEmailWeek;
            weekViewBar.PreviewWeekEvent += HtmlTimeReporter.OnPreviewWeek;
            StackPanel.Children.Add(weekViewBar);

            foreach (Day day in DataBaseManager.Instance.DaysInRange(a, b))
            {
                WpfDayViewBar datevViewBar = new WpfDayViewBar(day)
                {
                    Deletable = false
                };
                datevViewBar.DayClickEvent += OnDateViewDayClick;
                StackPanel.Children.Add(datevViewBar);
            }

            ScrollViewer.ScrollToBottom();
            btn_SelectedUser.Content = TimeServer.SqlCurrentUser;
        }
Exemple #5
0
        private void TwentyFour_Hour_Click(object sender, EventArgs e)
        {
            TwentyFourHourButton.Background = Brushes.LightSkyBlue;
            TwelveHourButton.Background     = Brushes.Transparent;

            TimeFormatExpander.IsExpanded     = false;
            AppSettings.Instance.MilitaryTime = "true";
            _24Hour = AppSettings.Instance.MilitaryTime == "true";
            InitTimes(TimeServer.StartEndWeek(_baseDate));
        }
        public void Test_PunchIn()
        {
            string key = TimeServer.GenerateId();

            _instance.PunchIn(key);
            Time last = _instance.AllTimes().Last();

            Assert.True(last.TimeIn.ToString(CultureInfo.InvariantCulture) == last.TimeOut.ToString(CultureInfo.InvariantCulture));
            Assert.True(last.TimeIn.Millisecond == last.TimeOut.Millisecond);
        }
        public void Test_PunchOut()
        {
            string key = TimeServer.GenerateId();

            _instance.PunchIn(key);
            Thread.Sleep(100);
            _instance.PunchOut(key);
            Time last = _instance.AllTimes().Last();

            Assert.True(last.TimeIn.Millisecond != last.TimeOut.Millisecond);
        }
        public void Test_IsClockedIn()
        {
            string key = TimeServer.GenerateId();

            Assert.False(_instance.IsClockedIn());
            _instance.PunchIn(key);
            Assert.True(_instance.IsClockedIn());
            Thread.Sleep(100);
            _instance.PunchOut(key);
            Assert.False(_instance.IsClockedIn());
        }
        public void Test_DeleteTime()
        {
            string key = TimeServer.GenerateId();

            _instance.PunchIn(key);
            _instance.PunchOut(key);
            Assert.True(_instance.AllTimes().Count == 1);
            Time time = _instance.AllTimes().First();

            _instance.DeleteTime(time.Key);
            Assert.True(_instance.AllTimes().Count == 0);
        }
Exemple #10
0
        private void OnDateViewClick(Day day)
        {
            if (day == null)
            {
                return;
            }

            WpfDayViewEdit dayView = new WpfDayViewEdit(day);

            dayView.ShowDialog();

            InitTimes(TimeServer.StartEndWeek(_baseDate));
        }
Exemple #11
0
        private void TimeViewTimeClick(WpfTimeViewBar viewBar)
        {
            string      prevKey  = viewBar.GetKey();
            WpfTimeEdit timeEdit = new WpfTimeEdit(viewBar.GetTime());

            var result = timeEdit.ShowDialog();

            if (result.HasValue && result.Value)
            {
                DataBaseManager.Instance.UpdateTime(prevKey, timeEdit.Time);
            }

            InitTimes(TimeServer.StartEndWeek(_baseDate));
        }
Exemple #12
0
        public MainWindow()
        {
            //ConsoleManager.Show();
            conf     = GlobalConfig.Instance;
            server   = new MessageExchange();
            timeserv = new TimeServer();
            InitializeComponent();

            Refresh = new Thread(new ThreadStart(RefreshListF));

            server.startListening();
            timeserv.startListening();
            Refresh.Start();

            string t = timeserv.generateData();
        }
Exemple #13
0
        private void btn_Start_CheckedChanged(object sender, RoutedEventArgs e)
        {
            if (Equals(Start_Button.Background, Brushes.Green))
            {
                ReLoadDay();
                UpdateTime();
                DataBaseManager.Instance.PunchIn(TimeServer.GenerateId());// unique 15 digit
            }
            else
            {
                DataBaseManager.Instance.PunchOut(DataBaseManager.Instance.LastTimeId());
                UpdateTime();
                UpdateGitIfEnabled();
            }

            SetStartChecked();
        }
        public void Test_UpdateTime()
        {
            string key = TimeServer.GenerateId();

            _instance.PunchIn(key);
            _instance.PunchOut(key);
            DateTime now = DateTime.Now;

            _instance.UpdateTime(key, new Time()
            {
                TimeIn = now, TimeOut = DateTime.MaxValue
            });
            Time last = _instance.AllTimes().Last();

            Assert.True(last.TimeIn.ToString(CultureInfo.InvariantCulture) == now.ToString(CultureInfo.InvariantCulture));
            Assert.True(last.TimeOut.ToString(CultureInfo.InvariantCulture) == DateTime.MaxValue.ToString(CultureInfo.InvariantCulture));
        }
        public void Setup()
        {
            TimeServer.SqlCurrentUser = "******";

            AppSettings.Instance               = new AppSettings();
            AppSettings.Instance.DataPath      = "TimeData.sqlite";
            AppSettings.Instance.MySqlDatabase = "test";
            AppSettings.Instance.MySqlPassword = "******";
            AppSettings.Instance.MySqlPort     = 3306;
            AppSettings.Instance.MySqlServer   = "localhost";
            AppSettings.Instance.MySqlUserId   = "WendallMartin";

            DataBaseManager.Initualize();
            _instance = DataBaseManager.Instance;
            _instance.AddUser(new User("nunit", "", new List <Day>()));
            TimeServer.SqlCurrentUser = "******";
        }
 static void Timer_RealTime_Tick(object sender, EventArgs e)
 {
     try
     {
         TimeServer = TimeServer.AddSeconds(1);
         Step10++;
         Step60++;
         Step5++;
         if (Step5 > 5)
         {
             Task.Factory.StartNew(() =>
             {
                 //Viết các hàm xử lý vào đây.
             });
             Step5 = 0;
         }
         if (Step10 > 10)
         {
             Task.Factory.StartNew(() =>
             {
                 CommonBL.LoadDrivers_Active_LastUpdate();
                 CommonBL.LoadVehicles_Active_LastUpdate();
                 Config_Common.LoadConfigCommonByLastUpdate();
             });
             Step10 = 0;
         }
         if (Step60 > 60)
         {
             Task.Factory.StartNew(() =>
             {
                 //Viết các hàm xử lý vào đây.
             });
             Step60 = 0;
         }
     }
     catch (Exception ex)
     {
         LogError.WriteLogError("Timer_RealTime_Tick", ex);
     }
 }
Exemple #17
0
        public ObservableCollection <InstructionParaListory> SearchDataForNeed(DateTime startTime, DateTime stopTime, string param, string whichPara)
        {
            List <BsonDocument> finallyData = new List <BsonDocument>();
            ObservableCollection <InstructionParaListory> paraResultList = new ObservableCollection <InstructionParaListory>();

            int t1 = UTCHelper.ConvertDateTimeToInt(startTime);
            int t2 = UTCHelper.ConvertDateTimeToInt(stopTime);

            //   Console.WriteLine(t1);
            // Console.WriteLine(t2);
            //ObservableCollection<ParaListory> paraResultList = ShowValues.ShowProjectValueAndSourceValue();
            //DisplayValues.ItemsSource = paraResultList;  //显示查询结果

            finallyData = TimeServer.GetBaseData(t1, t2, param, whichPara, 1000);
            foreach (var item in finallyData)
            {
                paraResultList.Add(new InstructionParaListory(UTCHelper.ConvertIntToDateTime(item[1].ToDouble()), item[2].ToString(), item[3].ToString(), item[4].ToString()));
            }



            return(paraResultList);
        }
        public WpfWeekViewBar(DateTime dateTime, double hours)
        {
            BrushSelected   = Brushes.DimGray;
            BrushUnselected = Brushes.Gray;

            _date = dateTime;

            Text = "Week - " + dateTime.Month + "//" +
                   dateTime.Day + "//" + dateTime.Year + "                                                         Hours: " + $"{TimeServer.DecToQuarter(hours)}";

            DeleteEvent   += OnDeleteDay;
            SelectedEvent += OnMouseDown;
        }
 public void Test_StartEndWeek()
 {
     Assert.True(TimeServer.StartEndWeek(DateTime.Now)[0].DayOfWeek == DayOfWeek.Sunday && TimeServer.StartEndWeek(DateTime.Now)[1].DayOfWeek == DayOfWeek.Saturday);
     Assert.True((TimeServer.StartEndWeek(DateTime.Now)[1].DayOfYear - TimeServer.StartEndWeek(DateTime.Now)[0].DayOfYear) == 6);
 }
Exemple #20
0
 private void OnDeleteDayClick(Day day)
 {
     DataBaseManager.Instance.DeleteDay(day.Date);
     InitTimes(TimeServer.StartEndWeek(_baseDate));
 }
Exemple #21
0
 private void TimeDeleteTime(Time time)
 {
     DataBaseManager.Instance.DeleteTime(time.Key);
     InitTimes(TimeServer.StartEndWeek(_baseDate));
 }
Exemple #22
0
        private void Btn_NextClick(object sender, RoutedEventArgs e)
        {
            _baseDate = new DateTime(Math.Min(_baseDate.AddDays(7).Ticks, _max.Date.Ticks));

            InitTimes(TimeServer.StartEndWeek(_baseDate));
        }
        public void Test_PushPull()
        {
            Day         day1   = new Day(new DateTime(2001, 11, 7, 9, 44, 15, 411));
            List <Time> times1 = new List <Time>();

            times1.Add(new Time(new DateTime(2001, 11, 7, 9, 44, 15, 411), new DateTime(2001, 11, 7, 12, 3, 1, 411))
            {
                Key = TimeServer.GenerateId()
            });
            times1.Add(new Time(new DateTime(2001, 11, 7, 1, 00, 00, 200), new DateTime(2001, 11, 7, 3, 00, 1, 999))
            {
                Key = TimeServer.GenerateId()
            });
            day1.Times   = times1;
            day1.Details = "does this even work any more?";

            Day         day2   = new Day(new DateTime(2051, 11, 6, 8, 44, 15, 411));
            List <Time> times2 = new List <Time>();

            times2.Add(new Time(new DateTime(2051, 11, 6, 8, 44, 15, 411), new DateTime(2051, 11, 6, 12, 30, 1, 100))
            {
                Key = TimeServer.GenerateId()
            });
            times2.Add(new Time(new DateTime(2051, 11, 6, 10, 4, 15, 411), new DateTime(2051, 11, 6, 11, 44, 15, 411))
            {
                Key = TimeServer.GenerateId()
            });
            day2.Times   = times2;
            day2.Details = "lets try again.....";

            Day         day3   = new Day(new DateTime(2021, 4, 3, 5, 5, 5, 888));
            List <Time> times3 = new List <Time>();

            times3.Add(new Time(new DateTime(2021, 4, 3, 5, 5, 5, 888), new DateTime(2021, 4, 3, 8, 5, 9, 800))
            {
                Key = TimeServer.GenerateId()
            });
            times3.Add(new Time(new DateTime(2021, 4, 3, 1, 5, 9, 800), new DateTime(2021, 4, 3, 6, 55, 9, 800))
            {
                Key = TimeServer.GenerateId()
            });
            day3.Times   = times3;
            day3.Details = "one more time!";

            var push = new List <Day>()
            {
                day1, day2, day3
            };

            _instance.Push(push);
            var pull = _instance.Pull();

            foreach (Day day in push)
            {
                bool contains = false;
                foreach (Day d in pull)
                {
                    if (Day.Equals(day, d))
                    {
                        contains = true;
                    }
                }
                Assert.IsTrue(contains);
            }
            Assert.IsTrue(push.Count == pull.Count);
        }
Exemple #24
0
        public void Test_FixVersionMismatches()
        {
            TimeServer.SqlCurrentUser = "******";
            DateTime dateTime       = DateTime.Now;
            string   dateString     = TimeServer.DateSqLite(dateTime);
            string   dateTimeString = TimeServer.DateTimeSqLite(dateTime);

            using (SQLiteCommand cmd = _instance.GetConnection.CreateCommand())
            {
                cmd.CommandText = $"DROP TABLE IF EXISTS [{_instance.DayTableName}]";
                cmd.ExecuteNonQuery();

                cmd.CommandText = $"DROP TABLE IF EXISTS [{_instance.TimeTableName}]";
                cmd.ExecuteNonQuery();
            }
            using (SQLiteCommand cmd = _instance.GetConnection.CreateCommand())
            {
                cmd.CommandText = $@"CREATE TABLE IF NOT EXISTS [{_instance.DayTableName}] ( [Date] TEXT, [Details] TEXT)";
                cmd.ExecuteNonQuery();

                cmd.CommandText = $"CREATE TABLE IF NOT EXISTS [{_instance.TimeTableName}]([Date] TEXT, [TimeIn] TEXT, [TimeOut] TEXT, [Key] INT)";
                cmd.ExecuteNonQuery();
            }

            using (SQLiteCommand cmd = _instance.GetConnection.CreateCommand())
            {
                cmd.CommandText = $"INSERT INTO [{_instance.DayTableName}] VALUES(@Date, @Details)";
                cmd.Parameters.Add(new SQLiteParameter("Date", dateString));
                cmd.Parameters.Add(new SQLiteParameter("Details", "testing....."));
                cmd.ExecuteNonQuery();
            }
            using (SQLiteCommand cmd = _instance.GetConnection.CreateCommand())
            {
                cmd.CommandText = $"INSERT INTO [{_instance.TimeTableName}] VALUES(@Date, @TimeIn, @TimeOut, @Key)";
                cmd.Parameters.Add(new SQLiteParameter("Date", dateString));
                cmd.Parameters.Add(new SQLiteParameter("TimeIn", dateTimeString));
                cmd.Parameters.Add(new SQLiteParameter("TimeOut", dateTimeString));
                cmd.Parameters.Add(new SQLiteParameter("Key", 6));
                cmd.ExecuteNonQuery();
            }
            using (SQLiteCommand cmd = _instance.GetConnection.CreateCommand())
            {
                cmd.CommandText = $"INSERT INTO [{_instance.TimeTableName}] VALUES(@Date, @TimeIn, @TimeOut, @Key)";
                cmd.Parameters.Add(new SQLiteParameter("Date", dateString));
                cmd.Parameters.Add(new SQLiteParameter("TimeIn", dateTimeString));
                cmd.Parameters.Add(new SQLiteParameter("TimeOut", dateTimeString));
                cmd.Parameters.Add(new SQLiteParameter("Key", 8));
                cmd.ExecuteNonQuery();
            }
            using (SQLiteCommand cmd = _instance.GetConnection.CreateCommand())
            {
                cmd.CommandText = $"INSERT INTO [{_instance.TimeTableName}] VALUES(@Date, @TimeIn, @TimeOut, @Key)";
                cmd.Parameters.Add(new SQLiteParameter("Date", dateString));
                cmd.Parameters.Add(new SQLiteParameter("TimeIn", dateTimeString));
                cmd.Parameters.Add(new SQLiteParameter("TimeOut", dateTimeString));
                cmd.Parameters.Add(new SQLiteParameter("Key", 7));
                cmd.ExecuteNonQuery();
            }

            var days = _instance.AllDays();

            Assert.IsTrue(days[0].Times.Count == 3);
            _instance.FixVersionMismatches();

            days = _instance.AllDays();
            Assert.IsTrue(days[0].Times.Count == 3);
            foreach (Day day in days)
            {
                Assert.IsTrue(day.Details == "testing.....");
                Assert.IsTrue(day.Date.ToString() == dateTime.Date.ToString());
                foreach (Time time in day.Times)
                {
                    Assert.IsTrue(time.TimeIn.ToString() == dateTime.ToString());
                    Assert.IsTrue(time.TimeOut.ToString() == dateTime.ToString());
                    Assert.IsTrue(time.Key.Length > 1);
                }
            }
        }
Exemple #25
0
 private void Btn_PrevClick(object sender, RoutedEventArgs e)
 {
     _baseDate = new DateTime(Math.Max(_baseDate.AddDays(-7).Ticks, _min.Ticks));
     InitTimes(TimeServer.StartEndWeek(_baseDate));
 }
Exemple #26
0
 private void OnDeleteWeek(DateTime date)
 {
     DataBaseManager.Instance.DeleteRange(TimeServer.StartEndWeek(date)[0], TimeServer.StartEndWeek(date)[1]);
     InitTimes(TimeServer.StartEndWeek(_baseDate));
 }