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); }
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); }
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); }
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); } }
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); }