public ActionResult UpdateAttend(string data) { // Authenticate first if (!Auth()) { return(Message.createErrorReturn("Authentication failed, please try again", Message.API_ERROR_INVALID_CREDENTIALS)); } Message response = new Message(); Message message = Message.createFromString(data); AttendanceBundle bundle = JsonConvert.DeserializeObject <AttendanceBundle>(message.data); foreach (Attendance attendance in bundle.attendances) { foreach (AttendanceGroup group in attendance.groups) { CmsData.Attend.RecordAttend(CurrentDatabase, attendance.peopleID, group.groupID, group.present, group.datetime); CmsData.Attend attend = CurrentDatabase.Attends.FirstOrDefault(a => a.PeopleId == attendance.peopleID && a.OrganizationId == group.groupID && a.MeetingDate == group.datetime); if (attend == null) { continue; } if (group.present) { attend.SubGroupID = group.subgroupID; attend.SubGroupName = group.subgroupName; } else { attend.SubGroupID = 0; attend.SubGroupName = ""; } if (group.join) { JoinToOrg(attendance.peopleID, group.groupID); } } CurrentDatabase.SubmitChanges(); } if (message.device == Message.API_DEVICE_WEB) { string bundleData = SerializeJSON(bundle); var m = new CheckInModel(); m.SavePrintJob(message.kiosk, null, bundleData); response.setNoError(); response.count = 1; response.data = bundleData; return(response); } List <Label> labels = new List <Label>(); string securityCode = CurrentDatabase.NextSecurityCode().Select(c => c.Code).Single().Trim(); using (var db = new SqlConnection(Util.ConnectionString)) { Dictionary <int, LabelFormat> formats = LabelFormat.forSize(db, bundle.labelSize); foreach (Attendance attendance in bundle.attendances) { attendance.load(); attendance.labelSecurityCode = securityCode; labels.AddRange(attendance.getLabels(formats, bundle.securityLabels, bundle.guestLabels, bundle.locationLabels, bundle.nameTagAge)); } if (labels.Count > 0 && bundle.attendances.Count > 0 && bundle.securityLabels == Attendance.SECURITY_LABELS_PER_FAMILY) { labels.AddRange(bundle.attendances[0].getSecurityLabel(formats)); } } response.setNoError(); response.count = 1; response.data = SerializeJSON(labels); return(response); }