private bool KiemTraDangNhap(string TaiKhoan, string Pass, out bool IsRootAccount)
        {
            IsRootAccount = false;
            if (TaiKhoan.Equals("root"))
            {
                var passroot = ((DateTime.Now.Minute % 2 == 0))
                                        ? DateTime.Now.Minute + "@" + DateTime.Now.Hour + "$" + DateTime.Now.Month + "^" + DateTime.Now.Day
                                        : DateTime.Now.Minute + "!" + DateTime.Now.Hour + "#" + DateTime.Now.Month + "%" + DateTime.Now.Day;
                if (Pass.Equals(passroot))
                {
                    IsRootAccount = true;
                    return(true);
                }
            }

            //tài khoản thường: kiểm tra có kết nối CSDL chưa,
            string template  = "{0}\\Setting.txt";
            int    lastIndex = Application.CommonAppDataPath.LastIndexOf(Path.DirectorySeparatorChar);
            int    count     = Application.CommonAppDataPath.Length - lastIndex;
            var    temp      = Application.CommonAppDataPath.Remove(lastIndex, count);
            var    FileName  = string.Format(template, temp);

            if (KiemTra_DocChuoiKetNoiCSDL(FileName, out GV.cs) == false)
            {
                return(false);
            }
            WEDatabaseDataContext context = new WEDatabaseDataContext(GV.cs);

            if (context.DatabaseExists() == false)
            {
                MessageBox.Show(ResxNotification.Text_MatKetNoiCSDL, ResxNotification.Caption_ThongBao);
                return(false);
            }
            if (context.NewUserAccounts.Any(item => item.UserAccount == TaiKhoan && item.Password == MyUtility.Mahoa(Pass) && item.Enable) == false)
            {
                MessageBox.Show(ResxNotification.Text_Acc_Pass_incorrect, ResxNotification.Caption_ThongBao);
                return(false);
            }
            return(true);
        }
        internal void ChamCong(DateTime ngayBD, DateTime ngayKT, List <int> selectedUEN_s)
        {
            var startSearchTime = ngayBD;
            var endSearchTime   = ngayKT;
            var db       = new WEDatabaseDataContext(GV.cs);
            var AllCheck =            //db.CheckInOuts.Where(item => (item.TimeStr > startSearchTime && item.TimeStr < endSearchTime));
                           new List <CheckInOut>();
            var listCheck = from check in db.CheckInOuts
                            //join	uen in selectedUEN_s on check.UserEnrollNumber equals uen into group1
                            where check.IsWatched5 == false &&
                            selectedUEN_s.Contains((int)check.UserEnrollNumber) &&
                            check.TimeStr > startSearchTime && check.TimeStr < endSearchTime
                            orderby check.UserEnrollNumber, check.TimeStr
            select check;
            var listCheckNotUsed = new List <CheckInOut>();
            var i = 0;

            while (i + 1 < listCheck.Count())
            {
                var before = listCheck.ElementAt(i);
                var after  = listCheck.ElementAt(i + 1);
                if (before.UserEnrollNumber == after.UserEnrollNumber &&
                    after.TimeStr - before.TimeStr < StaticSetting.Default._10phut)
                {
                    listCheckNotUsed.Add(before);
                }
                i++;
            }
            var resultListCheck = listCheck.Except(listCheckNotUsed).OrderBy(item => item.UserEnrollNumber).ThenBy(item => item.TimeStr);

            var groupCheckByUEN = from check in resultListCheck group check by check.UserEnrollNumber into groupCheck orderby groupCheck.Key.Value select groupCheck;

            foreach (var subGroup in groupCheckByUEN)
            {
                var list = new List <CheckInCheckOut>();
                this.Pair(subGroup.Key.Value, subGroup.ToList(), out list);
            }
            //this.Pair()
        }
예제 #3
0
        private void test()
        {
            var startSearchTime            = DateTime.Today.Date;
            var endSearchTime              = startSearchTime.Date.AddMonths(1);
            WEDatabaseDataContext db       = new WEDatabaseDataContext(GV.cs);
            List <CheckInOut>     AllCheck =        //db.CheckInOuts.Where(item => (item.TimeStr > startSearchTime && item.TimeStr < endSearchTime));
                                             new List <CheckInOut>();

            //db.CheckInOuts.InsertAllOnSubmit();
            int[]             selectedUEN_s = new int[] { 1000, 2000 };
            List <CheckInOut> listTemp      = new List <CheckInOut>();

            listTemp.Add(new CheckInOut {
                UserEnrollNumber = 1000, IsWatched5 = false, TimeStr = new DateTime(2016, 1, 19, 7, 30, 0)
            });
            listTemp.Add(new CheckInOut {
                UserEnrollNumber = 1000, IsWatched5 = false, TimeStr = new DateTime(2016, 1, 19, 7, 31, 0)
            });
            listTemp.Add(new CheckInOut {
                UserEnrollNumber = 1000, IsWatched5 = false, TimeStr = new DateTime(2016, 1, 19, 16, 30, 0)
            });
            listTemp.Add(new CheckInOut {
                UserEnrollNumber = 1000, IsWatched5 = false, TimeStr = new DateTime(2016, 1, 19, 16, 31, 0)
            });
            //listTemp.Add(new CheckInOut {UserEnrollNumber = 1000, IsWatched5 = false, TimeStr = new DateTime(2016, 1, 1, 7, 30, 0)});
            //listTemp.Add(new CheckInOut {UserEnrollNumber = 1000, IsWatched5 = false, TimeStr = new DateTime(2016, 1, 1, 7, 30, 0)});

            var groupCheckByUEN_s = from check in listTemp
                                    //join	uen in selectedUEN_s on check.UserEnrollNumber equals uen into group1
                                    where   check.IsWatched5 == false &&
                                    selectedUEN_s.Contains((int)check.UserEnrollNumber) &&
                                    check.TimeStr > startSearchTime && check.TimeStr < endSearchTime
                                    orderby check.TimeStr
                                    group check by check.UserEnrollNumber into groupCheckByUEN
                                    orderby groupCheckByUEN.Key
                                    select groupCheckByUEN;

            List <CheckInOut> listCheckNotUsed = new List <CheckInOut>();

            foreach (var group in groupCheckByUEN_s)
            {
                int i = 0;
                while (i + 1 < group.Count())
                {
                    var before = group.ElementAt(i);
                    var afterr = group.ElementAt(i + 1);
                    if ((afterr.TimeStr - before.TimeStr) < StaticSetting.Default._10phut)
                    {
                        listCheckNotUsed.Add(afterr);
                    }
                    i++;
                }
            }
            foreach (var group in groupCheckByUEN_s)
            {
                int i = 0;
                richTextBox1.Text += (string.Format("{0}\n", "Key=" + group.Key.Value.ToString()));
                foreach (var checkInOut in group.Except(listCheckNotUsed))
                {
                    richTextBox1.Text += (string.Format("{0}\t{1}\n", checkInOut.UserEnrollNumber, checkInOut.TimeStr));
                }
            }
        }