コード例 #1
0
        public ActionResult GetAttendance(int start, int count, int attendanceStatusId)
        {
            if (Enum.IsDefined(typeof(AttendanceStatus), attendanceStatusId))
            {
                return(Json(null));
            }


            var attendances          = new List <EventPageAttendance>();
            var attendanceStatusName = string.Empty;


            switch (attendanceStatusId)
            {
            case (int)AttendanceStatus.Invited:
                attendanceStatusName = AttendanceStatus.Invited.ToString();
                attendances          = _eventPageAttendanceService.GetInvited(start, count);
                break;

            case (int)AttendanceStatus.Going:
                attendanceStatusName = AttendanceStatus.Going.ToString();
                attendances          = _eventPageAttendanceService.GetGoing(start, count);
                break;

            case (int)AttendanceStatus.Maybe:
                attendanceStatusName = AttendanceStatus.Maybe.ToString();
                attendances          = _eventPageAttendanceService.GetMaybies(start, count);
                break;

            case (int)AttendanceStatus.NotGoing:
                attendanceStatusName = AttendanceStatus.NotGoing.ToString();
                attendances          = _eventPageAttendanceService.GetNotGoing(start, count);
                break;
            }

            var customerIds = attendances.Select(x => x.CustomerId).ToArray();
            var customers   = _customerService.GetCustomersByIds(customerIds);

            var models = new List <object>();

            foreach (var customer in customers)
            {
                models.Add(new
                {
                    FullName   = customer.GetFullName(),
                    PictureUrl = _pictureService.GetPictureUrl(
                        customer.GetAttribute <int>(SystemCustomerAttributeNames.AvatarPictureId),
                        _mobSocialSettings.EventPageAttendanceThumbnailSize, _customerSettings.DefaultAvatarEnabled,
                        defaultPictureType: PictureType.Avatar),
                    ProfileUrl = Url.RouteUrl("CustomerProfileUrl", new { SeName = SeoExtensions.GetSeName(customer, 0) }),
                });
            }

            return(Json(new
            {
                AttendanceStatusName = attendanceStatusName,
                Customers = models
            }));
        }