Example #1
0
        public static void AddExitHistory(RockContext rockContext, Location location, Attendance attendeeAttendance, bool isSubroom)
        {
            HistoryService historyService = new HistoryService(rockContext);
            var            summary        = string.Format("Exited <span class=\"field-name\">{0}</span> at <span class=\"field-name\">{1}</span>", location.Name, Rock.RockDateTime.Now);

            if (isSubroom)
            {
                summary += string.Format(" (a subroom of <span class=\"field-name\">{0}</span>)", location.ParentLocation.Name);
            }

            History history = new History()
            {
                EntityTypeId        = personEntityTypeId,
                EntityId            = attendeeAttendance.PersonAlias.PersonId,
                RelatedEntityTypeId = locationEntityTypeId,
                RelatedEntityId     = location.Id,
                Verb        = "Exit",
                Summary     = summary,
                Caption     = "Exited Location",
                RelatedData = GetHostInfo(),
                CategoryId  = 4
            };

            historyService.Add(history);
            InMemoryPersonStatus.RemoveFromWorship(attendeeAttendance.PersonAlias.PersonId);
        }
Example #2
0
        public static void CloneAttendance(Attendance attendance, bool isSubroom, Location location, AttendanceService attendanceService, Request req)
        {
            Attendance newAttendance = ( Attendance )attendance.Clone();

            newAttendance.Id               = 0;
            newAttendance.Guid             = new Guid();
            newAttendance.StartDateTime    = Rock.RockDateTime.Now;
            newAttendance.EndDateTime      = null;
            newAttendance.DidAttend        = true;
            newAttendance.Device           = null;
            newAttendance.SearchTypeValue  = null;
            newAttendance.LocationId       = req.LocationId;
            newAttendance.AttendanceCode   = null;
            newAttendance.AttendanceCodeId = attendance.AttendanceCodeId;
            if (isSubroom)
            {
                newAttendance.ForeignId = location.Id;
            }
            else
            {
                newAttendance.ForeignId = null;
            }
            attendanceService.Add(newAttendance);
            var stayedFifteenMinutes = (Rock.RockDateTime.Now - attendance.StartDateTime) > new TimeSpan(0, 15, 0);

            attendance.DidAttend   = stayedFifteenMinutes;
            attendance.EndDateTime = Rock.RockDateTime.Now;
            InMemoryPersonStatus.RemoveFromWorship(attendance.PersonAlias.PersonId);
            InMemoryPersonStatus.RemoveFromWithParent(attendance.PersonAlias.PersonId);
            CheckInCountCache.AddAttendance(newAttendance);
            CheckInCountCache.RemoveAttendance(attendance);
        }
Example #3
0
        public static void AddMoveTwoWorshipHistory(RockContext rockContext, Person person)
        {
            HistoryService historyService = new HistoryService(rockContext);
            var            summary        = string.Format("Moved to Worship at <span class=\"field-name\">{0}</span>", Rock.RockDateTime.Now);

            History history = new History()
            {
                EntityTypeId = personEntityTypeId,
                EntityId     = person.Id,
                Verb         = "Moved",
                Summary      = summary,
                Caption      = "Moved To Worship",
                RelatedData  = GetHostInfo(),
                CategoryId   = 4
            };

            historyService.Add(history);
            InMemoryPersonStatus.AddToWorship(person.Id);
        }
Example #4
0
        public static void CloseActiveAttendances(RockContext rockContext, Attendance attendeeAttendance, Location location, bool isSubroom)
        {
            var  activeAttendances = ValidationHelper.GetActiveAttendances(rockContext, attendeeAttendance, location);
            bool didRemove         = false;

            foreach (var activeAttendance in activeAttendances)
            {
                didRemove = true;
                var stayedFifteenMinutes = (Rock.RockDateTime.Now - activeAttendance.StartDateTime) > new TimeSpan(0, 15, 0);
                activeAttendance.DidAttend   = stayedFifteenMinutes;
                activeAttendance.EndDateTime = Rock.RockDateTime.Now;
                AddExitHistory(rockContext, attendeeAttendance.Location, attendeeAttendance, isSubroom);
                CheckInCountCache.RemoveAttendance(activeAttendance);
            }
            if (didRemove)
            {
                var personId = attendeeAttendance.PersonAlias.PersonId;
                InMemoryPersonStatus.RemoveFromWorship(personId);
                InMemoryPersonStatus.RemoveFromWithParent(personId);
            }
        }
Example #5
0
        public static void AddReturnToRoomHistory(RockContext rockContext, Person person)
        {
            var            summary        = "";
            var            caption        = "";
            HistoryService historyService = new HistoryService(rockContext);

            if (InMemoryPersonStatus.IsInWorship(person.Id) && InMemoryPersonStatus.IsWithParent(person.Id))
            {
                InMemoryPersonStatus.RemoveFromWorship(person.Id);
                InMemoryPersonStatus.RemoveFromWithParent(person.Id);
                summary = string.Format("Returned from Worship and Parent at <span class=\"field-name\">{0}</span>", Rock.RockDateTime.Now);
                caption = "Returned from Worship and Parent";
            }
            else if (InMemoryPersonStatus.IsInWorship(person.Id))
            {
                InMemoryPersonStatus.RemoveFromWorship(person.Id);
                summary = string.Format("Returned from Worship at <span class=\"field-name\">{0}</span>", Rock.RockDateTime.Now);
                caption = "Returned from Worship";
            }
            else if (InMemoryPersonStatus.IsWithParent(person.Id))
            {
                InMemoryPersonStatus.RemoveFromWithParent(person.Id);
                summary = string.Format("Returned from Parent at <span class=\"field-name\">{0}</span>", Rock.RockDateTime.Now);
                caption = "Returned from Parent";
            }
            if (!string.IsNullOrWhiteSpace(caption))
            {
                History history = new History()
                {
                    EntityTypeId = personEntityTypeId,
                    EntityId     = person.Id,
                    Verb         = "Returned",
                    Summary      = summary,
                    Caption      = "Returned from Worship",
                    RelatedData  = GetHostInfo(),
                    CategoryId   = 4
                };
                historyService.Add(history);
            }
        }
        public static void CloneAttendance(Attendance attendance, bool isSubroom, Location location, AttendanceService attendanceService, Request req)
        {
            Attendance newAttendance = null;

            if (!isSubroom)
            {
                newAttendance = attendanceService.AddOrUpdate(attendance.PersonAliasId, attendance.StartDateTime.Date, attendance.Occurrence.GroupId,
                                                              location.Id, attendance.Occurrence.ScheduleId, location.CampusId,
                                                              null, null, null, null, null, null);
            }
            else
            {
                newAttendance = attendanceService.AddOrUpdate(attendance.PersonAliasId, attendance.StartDateTime.Date, attendance.Occurrence.GroupId,
                                                              location.ParentLocationId, attendance.Occurrence.ScheduleId, location.CampusId,
                                                              null, null, null, null, null, null);
            }
            newAttendance.StartDateTime    = Rock.RockDateTime.Now;
            newAttendance.EndDateTime      = null;
            newAttendance.DidAttend        = true;
            newAttendance.AttendanceCodeId = attendance.AttendanceCodeId;
            if (isSubroom)
            {
                newAttendance.ForeignId = location.Id;
            }
            else
            {
                newAttendance.ForeignId = null;
            }
            attendanceService.Add(newAttendance);
            var stayedFifteenMinutes = (Rock.RockDateTime.Now - attendance.StartDateTime) > new TimeSpan(0, 15, 0);

            attendance.DidAttend   = stayedFifteenMinutes;
            attendance.EndDateTime = Rock.RockDateTime.Now;
            InMemoryPersonStatus.RemoveFromWorship(attendance.PersonAlias.PersonId);
            InMemoryPersonStatus.RemoveFromWithParent(attendance.PersonAlias.PersonId);
            CheckInCountCache.AddAttendance(newAttendance);
            CheckInCountCache.RemoveAttendance(attendance);
        }