public ActionResult AttendanceTable(int nextMonth, FormCollection collection)
        {
            List <GroupMeditation> nextMonthGMs = GetMonthGMs(nextMonth);

            List <MemberInfo> members = GetMemberInfos();

            try
            {
                string[] attendenceChecks = (string[])collection.GetValues("AttendenceChecks");

                int i = 0;
                foreach (MemberInfo mi in members)
                {
                    foreach (GroupMeditation gm in nextMonthGMs)
                    {
                        if (bool.Parse(attendenceChecks[i++]))
                        {
                            GroupMeditationAttendance groupMeditationAttendance = new GroupMeditationAttendance();
                            groupMeditationAttendance.MemberID          = mi.MemberID;
                            groupMeditationAttendance.GroupMeditationID = gm.ID;
                            groupMeditationAttendance.CheckInTime       = gm.StartDateTime.AddHours(0.5);
                            _entities.AddToGroupMeditationAttendances(groupMeditationAttendance);
                            _entities.SaveChanges();
                        }
                    }
                }

                return(RedirectToAction("index"));
            }
            catch
            {
                return(View());
            }
        }
        public ActionResult DeleteAttendData(int GMAttendID, FormCollection collection)
        {
            GroupMeditationAttendance gMAttend = _entities.GroupMeditationAttendances.Single(a => a.ID == GMAttendID);
            int GMID = gMAttend.GroupMeditationID;

            _entities.DeleteObject(gMAttend);
            _entities.SaveChanges();

            return(RedirectToAction("Details", new { eventID = GMID, descending = true }));
        }
        private void NewGroupMeditationAttendance(DateTime checkInTime, Guid memberID, int groupMeditaionID)
        {
            GroupMeditationAttendance groupMeditationAttendance = new GroupMeditationAttendance();

            groupMeditationAttendance.MemberID          = memberID;
            groupMeditationAttendance.GroupMeditationID = groupMeditaionID;
            groupMeditationAttendance.CheckInTime       = checkInTime;
            _entities.AddToGroupMeditationAttendances(groupMeditationAttendance);
            _entities.SaveChanges();
        }
Esempio n. 4
0
        static private void GetCheckInOutAccessTableData(string[] args)
        {
            SMCHDBEntities _entities = new SMCHDBEntities();
            string         conString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\att2008\\att2000.mdb";
            string         strSql    = "SELECT CHECKINOUT.CHECKTIME, USERINFO.Badgenumber FROM (CHECKINOUT INNER JOIN USERINFO ON CHECKINOUT.USERID = USERINFO.USERID) ";

            OleDbConnection con = new OleDbConnection(conString);

            DataTable AttendanceTable = new DataTable();

            System.Console.WriteLine("Opening MDB connection...");
            con.Open();

            OleDbDataAdapter dAdapter = new OleDbDataAdapter();

            dAdapter.SelectCommand = new OleDbCommand(strSql, con);
            dAdapter.Fill(AttendanceTable);
            con.Close();

            System.Console.WriteLine("Data loaded from MDB file. Updating database, please wait...");

            // get latest time in GroupMeditationAttendance table
            DateTime latestGroupMeditationAttendanceDB = _entities.GroupMeditationAttendances.OrderByDescending(a => a.CheckInTime).Select(a => a.CheckInTime).FirstOrDefault();

            if (latestGroupMeditationAttendanceDB < new DateTime(2011, 12, 1) || args.Length == 1 && args[0].ToLower() == "all")
            {
                latestGroupMeditationAttendanceDB = new DateTime(2011, 12, 1);
            }
            else
            {
                latestGroupMeditationAttendanceDB = latestGroupMeditationAttendanceDB.AddDays(-3);
            }

            // Filter old record and no member person
            var attendanceList = AttendanceTable.AsEnumerable().Where(
                a => a.Field <DateTime>("CHECKTIME") >= latestGroupMeditationAttendanceDB);

            List <int> memberNoList = _entities.MemberInfos.Where(a => a.MemberNo.HasValue).Select(a => a.MemberNo.Value).ToList();

            foreach (DataRow dr in attendanceList)
            {
                DateTime checkInTime = (DateTime)dr["CHECKTIME"];

                int memberNo = int.Parse((string)dr["Badgenumber"]);
                if (!memberNoList.Contains(memberNo))
                {
                    continue;
                }

                //System.Console.WriteLine("Uploading record of member " + memberNo.ToString() + " at " + checkInTime.ToString());

                Guid memberID = _entities.MemberInfos.SingleOrDefault(a => a.MemberNo == memberNo).MemberID;

                DateTime checkInTimeStart = checkInTime.AddMinutes(90 + 15);
                DateTime checkInTimeEnd   = checkInTime.AddMinutes(-15);
                //if (_entities.Events.Any(a => a.StartDateTime <= checkInTimeStart && a.StartDateTime >= checkInTime))
                if (_entities.Events.Any(a => a.StartDateTime <= checkInTimeStart && a.StartDateTime >= checkInTimeEnd))
                {
                    //int eventID = _entities.Events.Where(a => a.StartDateTime <= checkInTimeStart && a.StartDateTime >= checkInTime).FirstOrDefault().ID;
                    Event aEvent = _entities.Events.Where(a => a.StartDateTime <= checkInTimeStart && a.StartDateTime >= checkInTimeEnd).FirstOrDefault();

                    if (!_entities.EventRegistrations.Any(a => a.EventID == aEvent.ID && a.MemberID == memberID))
                    {
                        EventRegistration eventRegistration = new EventRegistration();
                        eventRegistration.MemberID = memberID;
                        eventRegistration.EventID  = aEvent.ID;
                        eventRegistration.SignTime = checkInTime;
                        _entities.AddToEventRegistrations(eventRegistration);
                        _entities.SaveChanges();

                        System.Console.WriteLine("Uploading" + aEvent.Title + " MemberNo: " + memberNo.ToString() + " at " + checkInTime.ToString());
                        //System.Console.WriteLine("Updated Event checkin");
                        continue;
                    }
                }

                //if (_entities.GroupMeditations.Any(a => a.StartDateTime <= checkInTimeStart && a.StartDateTime >= checkInTime))
                if (_entities.GroupMeditations.Any(a => a.StartDateTime <= checkInTimeStart && a.StartDateTime >= checkInTimeEnd))
                {
                    //int groupMeditaionID = _entities.GroupMeditations.Where(a => a.StartDateTime <= checkInTimeStart && a.StartDateTime >= checkInTime).FirstOrDefault().ID;
                    int groupMeditaionID = _entities.GroupMeditations.Where(a => a.StartDateTime <= checkInTimeStart && a.StartDateTime >= checkInTimeEnd).FirstOrDefault().ID;

                    if (!_entities.GroupMeditationAttendances.Any(a => a.GroupMeditationID == groupMeditaionID && a.MemberID == memberID))
                    {
                        GroupMeditationAttendance groupMeditationAttendance = new GroupMeditationAttendance();
                        groupMeditationAttendance.MemberID          = memberID;
                        groupMeditationAttendance.GroupMeditationID = groupMeditaionID;
                        groupMeditationAttendance.CheckInTime       = checkInTime;
                        _entities.AddToGroupMeditationAttendances(groupMeditationAttendance);
                        _entities.SaveChanges();

                        System.Console.WriteLine("Uploading GM: MemberNo " + memberNo.ToString() + " at " + checkInTime.ToString());
                    }
                }
            }
        }
        public ActionResult DeleteAttendData(int GMAttendID)
        {
            GroupMeditationAttendance gMAttend = _entities.GroupMeditationAttendances.Single(a => a.ID == GMAttendID);

            return(View(gMAttend));
        }