public override void ExecuteResult(ControllerContext context) { context.HttpContext.Response.ContentType = "text/xml"; var settings = new XmlWriterSettings() { Encoding = new System.Text.UTF8Encoding(false), Indent = true }; using (var w = XmlWriter.Create(context.HttpContext.Response.OutputStream, settings)) { w.WriteStartElement("Attendees"); var m = new CheckInModel(); List <Attendee> q; if (kioskmode == true) { q = m.FamilyMembersKiosk(fid, campus, thisday); } else { q = m.FamilyMembers(fid, campus, thisday); } w.WriteAttributeString("familyid", fid.ToString()); w.WriteAttributeString("waslocked", waslocked.ToString()); var count = q.Count(); if (page > 0) { const int INT_PageSize = 10; var startrow = (page - 1) * INT_PageSize; if (count > startrow + INT_PageSize) { w.WriteAttributeString("next", (page + 1).ToString()); } else { w.WriteAttributeString("next", ""); } if (page > 1) { w.WriteAttributeString("prev", (page - 1).ToString()); } else { w.WriteAttributeString("prev", ""); } q = q.Skip(startrow).Take(INT_PageSize).ToList(); } w.WriteAttributeString("maxlabels", DbUtil.Db.Setting("MaxLabels", "6")); var code = DbUtil.Db.NextSecurityCode(DateTime.Today).Select(c => c.Code).Single(); w.WriteAttributeString("securitycode", code); var accommodateCheckInBug = DbUtil.Db.Setting("AccommodateCheckinBug", "false").ToBool(); foreach (var c in q) { double leadtime = 0; if (c.Hour.HasValue) { var midnight = c.Hour.Value.Date; var now = midnight.Add(Util.Now.TimeOfDay); leadtime = c.Hour.Value.Subtract(now).TotalHours; leadtime -= DbUtil.Db.Setting("TZOffset", "0").ToInt(); // positive to the east, negative to the west } w.WriteStartElement("attendee"); w.WriteAttributeString("id", c.Id.ToString()); w.WriteAttributeString("mv", c.MemberVisitor); w.WriteAttributeString("name", c.DisplayName); w.WriteAttributeString("preferredname", c.PreferredName); if (accommodateCheckInBug) // bug in checkin requires this { w.WriteAttributeString("first", c.PreferredName); } else { w.WriteAttributeString("first", c.First); } w.WriteAttributeString("last", c.Last); w.WriteAttributeString("org", c.DisplayClass); w.WriteAttributeString("orgname", c.OrgName); w.WriteAttributeString("leader", c.Leader); w.WriteAttributeString("orgid", c.OrgId.ToString()); w.WriteAttributeString("loc", c.Location); w.WriteAttributeString("gender", c.gender.ToString()); w.WriteAttributeString("leadtime", leadtime.ToString()); w.WriteAttributeString("age", c.Age.ToString()); w.WriteAttributeString("numlabels", c.NumLabels.ToString()); w.WriteAttributeString("checkedin", c.CheckedIn.ToString()); w.WriteAttributeString("custody", c.Custody.ToString()); w.WriteAttributeString("transport", c.Transport.ToString()); w.WriteAttributeString("hour", c.Hour.FormatDateTm()); w.WriteAttributeString("requiressecuritylabel", c.RequiresSecurityLabel.ToString()); w.WriteAttributeString("church", c.church); w.WriteAttributeString("email", c.email); w.WriteAttributeString("dob", c.dob); w.WriteAttributeString("goesby", c.goesby); w.WriteAttributeString("addr", c.addr); w.WriteAttributeString("zip", c.zip); w.WriteAttributeString("home", c.home); w.WriteAttributeString("cell", c.cell); w.WriteAttributeString("marital", c.marital.ToString()); w.WriteAttributeString("allergies", c.allergies); w.WriteAttributeString("grade", c.grade.ToString()); w.WriteAttributeString("parent", c.parent); w.WriteAttributeString("emfriend", c.emfriend); w.WriteAttributeString("emphone", c.emphone); w.WriteAttributeString("activeother", c.activeother.ToString()); w.WriteAttributeString("haspicture", c.HasPicture.ToString()); w.WriteEndElement(); } w.WriteEndElement(); } }