示例#1
0
        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));
        }
示例#2
0
        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));
        }