public void GetAttendanceCsvFile(int nextMonth, string filePath)
        {
            FileInfo     theSourceFile = new FileInfo(filePath);
            StreamReader reader        = theSourceFile.OpenText();
            string       text;

            List <GroupMeditation> nextMonthGMs = GetMonthGMs(nextMonth);
            List <MemberInfo>      members      = GetMemberInfos();

            int lineNo = 0;

            text = reader.ReadLine();
            while (text != null)
            {
                Guid     tMemberID = members[lineNo].MemberID;
                string[] temps     = text.Split(',');
                for (int i = 1; i < temps.Length; i++)
                {
                    GroupMeditation gm = nextMonthGMs[i - 1];
                    if (!string.IsNullOrEmpty(temps[i]) && temps[i].ToLower() == "y" && !_entities.GroupMeditationAttendances.Any(a => a.GroupMeditationID == gm.ID && a.MemberID == tMemberID))
                    {
                        NewGroupMeditationAttendance(gm.StartDateTime.AddHours(0.5), tMemberID, gm.ID);
                    }
                }
                lineNo++;
                text = reader.ReadLine();
            }
        }
        private void AddGroupMeditationItem(DateTime dt, double startTime, double duration, int InitiateTypeID)
        {
            GroupMeditation gm = new GroupMeditation();

            gm.InitiateTypeID = InitiateTypeID;
            gm.StartDateTime  = dt.Date.AddHours(startTime);
            gm.EndDateTime    = gm.StartDateTime.AddHours(duration);

            if (!_entities.GroupMeditations.Any(a => a.StartDateTime == gm.StartDateTime))
            {
                _entities.AddToGroupMeditations(gm);
                _entities.SaveChanges();
            }
        }
        public ActionResult Details(int eventID, bool descending)
        {
            var viewModel = (from r in _entities.GroupMeditationAttendances
                             where r.GroupMeditationID == eventID && r.CheckInTime != null
                             orderby r.CheckInTime
                             select r).ToList();

            if (descending)
            {
                viewModel = viewModel.OrderByDescending(a => a.CheckInTime).ToList();
            }

            GroupMeditation aEvent = _entities.GroupMeditations.Single(a => a.ID == eventID);

            ViewData["aEvent"]     = aEvent;
            ViewData["Descending"] = descending;

            return(View(viewModel));
        }
        private int GetMonthDPContents(string[,] monthDpList, GroupMeditation gm, int i, int weekNO, Guid memberID, bool edit)
        {
            int new_i = i;

            if (string.IsNullOrEmpty(monthDpList[new_i, weekNO]))
            {
                monthDpList[new_i, weekNO] = gm.StartDateTime.Day.ToString();
            }
            else
            {
                new_i++;
            }
            monthDpList[new_i, weekNO] += '^' + String.Format("{0:t}", gm.StartDateTime) + " - " + String.Format("{0:t}", gm.EndDateTime);
            if (gm.DPMemberID.HasValue)
            {
                if (edit)
                {
                    monthDpList[new_i, weekNO] += '^' + gm.DPMemberID.ToString();
                }
                else
                {
                    MemberInfo mi = _entities.MemberInfos.Single(a => a.MemberID == gm.DPMemberID);
                    monthDpList[new_i, weekNO] += '^' + mi.Name;
                    if (!string.IsNullOrEmpty(mi.ContactNo) && (Roles.IsUserInRole("SuperAdmin") || Roles.IsUserInRole("DP Admin")))
                    {
                        monthDpList[new_i, weekNO] += " (" + mi.ContactNo + ')';
                    }
                }
            }
            else
            {
                if (edit)
                {
                    monthDpList[new_i, weekNO] += '^' + memberID.ToString();
                }
                else
                {
                    monthDpList[new_i, weekNO] += '^';
                }
            }

            return(new_i);
        }
        public ActionResult AddNewAttend(int GMID, Guid?MemberID, FormCollection collection)
        {
            Guid memberID;

            if (MemberID == null)
            {
                MembershipUser muc = Membership.GetUser(User.Identity.Name);
                memberID = (Guid)muc.ProviderUserKey;
            }
            else
            {
                memberID = (Guid)MemberID;
            }

            //eventRegistration.EventID = eventID;
            GroupMeditation gm = _entities.GroupMeditations.Single(a => a.ID == GMID);

            NewGroupMeditationAttendance(gm.StartDateTime.AddHours(-0.5), memberID, GMID);

            return(RedirectToAction("Details", new { eventID = GMID, descending = true }));
        }
        private static bool isGMInRosterList(GroupMeditation gm)
        {
            bool retVal = false;

            if (gm.StartDateTime.DayOfWeek == DayOfWeek.Sunday && gm.StartDateTime.Hour == 9 ||
                gm.StartDateTime.DayOfWeek == DayOfWeek.Monday && gm.StartDateTime.Hour == 19 ||
                gm.StartDateTime.DayOfWeek == DayOfWeek.Tuesday && gm.StartDateTime.Hour == 19 ||
                gm.StartDateTime.DayOfWeek == DayOfWeek.Thursday && gm.StartDateTime.Hour == 19 ||
                gm.StartDateTime.DayOfWeek == DayOfWeek.Friday && gm.StartDateTime.Hour == 20 && gm.InitiateTypeID == 3 ||
                gm.StartDateTime.DayOfWeek == DayOfWeek.Saturday && gm.StartDateTime.Hour == 19 ||
                gm.StartDateTime.DayOfWeek == DayOfWeek.Wednesday && gm.StartDateTime.Hour == 23 && gm.StartDateTime >= new DateTime(2012, 5, 1) || // Wednesday overnight session
                gm.StartDateTime.DayOfWeek == DayOfWeek.Saturday && gm.StartDateTime.Hour == 23 ||                                                  // Saturday overnight session
                gm.StartDateTime.DayOfWeek == DayOfWeek.Saturday && gm.StartDateTime.Hour == 9 && gm.StartDateTime >= new DateTime(2015, 3, 1)      // Saturday morning session
                )

            {
                retVal = true;
            }

            return(retVal);
        }