public virtual async Task <ActionResult> Participants(string EventId) { // Event Id must be an integer and found // Int32 eventId = 0; if (!Int32.TryParse(EventId, out eventId)) { eventId = 0; } if (eventId == 0) { return(new HttpStatusCodeResult(400, "Invalid event Id")); } // Retrieve participants and format into appropriate view model // var attendings = await RaceDayClient.GetEventDetail(eventId); List <EventParticipant> participants = new List <EventParticipant>(); foreach (var user in attendings.attendees) { participants.Add(EventParticipant.FromJson(user)); } // return the rendered view with participants in it // AttendanceResult result = new AttendanceResult(); result.Attendees = RenderPartialViewToString(MVC.Shared.Views.Partials._ParticipantList, participants); return(Json(result)); }
public virtual async Task <ActionResult> Attending(String EventId, String ClassName) { // Event Id must be an integer and found // Int32 eventId = 0; if (!Int32.TryParse(EventId, out eventId)) { eventId = 0; } if (eventId == 0) { return(new HttpStatusCodeResult(400, "Invalid event Id")); } // ClassName must be recognized // if ((ClassName != "glyphicon-check") && (ClassName != "glyphicon-unchecked")) { return(new HttpStatusCodeResult(400, "Unrecognized class name")); } EventDetail eventDetail; // Switch the attendance // AttendanceResult result = new AttendanceResult(); if (ClassName == "glyphicon-check") { await RaceDayClient.RemoveUserFromEvent(eventId); eventDetail = await RaceDayClient.GetEventDetail(eventId); result.Button = RenderPartialViewToString(MVC.Shared.Views.Partials._NotAttendingButton, EventInfo.CopyFromEventService(false, eventDetail)); } else { await RaceDayClient.AddUserToEvent(eventId); eventDetail = await RaceDayClient.GetEventDetail(eventId); result.Button = RenderPartialViewToString(MVC.Shared.Views.Partials._AttendingButton, EventInfo.CopyFromEventService(true, eventDetail)); } // Rebind the participant list with the change // List <EventParticipant> participants = new List <EventParticipant>(); foreach (var user in eventDetail.attendees) { participants.Add(EventParticipant.FromJson(user)); } result.Attendees = RenderPartialViewToString(MVC.Shared.Views.Partials._ParticipantList, participants); return(Json(result)); }