Beispiel #1
0
        public async Task <IHttpActionResult> GetPublicProfile(string userId, int joinedAmount, int launchedAmount)
        {
            var user = await db
                       .Users
                       .FirstOrDefaultAsync(u => u.Id == userId);

            var profile = await db
                          .Profiles
                          .FirstOrDefaultAsync(p => p.UserId == userId);

            // if neither presented
            if (user == null && profile == null)
            {
                return(NotFound());
            }
            //  if only one presents, reply 500, indicating that the two tables doesn't match
            if (user == null || profile == null)
            {
                return(StatusCode(HttpStatusCode.InternalServerError));
            }

            var publicUserView = new PublicUserViewModel()
            {
                UserId    = user.Id,
                Email     = user.Email,
                UserName  = user.UserName,
                Number    = user.Number,
                NickName  = profile.NickName,
                Picture   = profile.Picture,
                Gender    = profile.Gender,
                Brief     = profile.Brief,
                CreatedAt = profile.CreatedAt,
                UpdatedAt = profile.UpdatedAt
            };

            var JoinedMeetupIds = db.Joins.Where(j => j.UserId == user.Id);

            publicUserView.JoinedMeetups = db
                                           .Meetups
                                           .Where(m => JoinedMeetupIds.Count(j => j.MeetupId == m.Id) > 0)
                                           .Take(joinedAmount);
            publicUserView.JoinedMeetupsTotal = db
                                                .Meetups
                                                .Where(m => JoinedMeetupIds.Count(j => j.MeetupId == m.Id) > 0)
                                                .Count();
            publicUserView.LaunchedMeetups = db
                                             .Meetups
                                             .Where(m => m.Sponsor == userId)
                                             .Take(launchedAmount);
            publicUserView.LaunchedMeetupsTotal = db
                                                  .Meetups
                                                  .Where(m => m.Sponsor == user.Id)
                                                  .Count();

            return(Ok(publicUserView));
        }
 public SpotifyUserController
     (SpotifyUser userRepo,
     IMapper mapper,
     SpotifyPlayer playerRepo,
     ICookieManager cookiesManager,
     PublicUserViewModel userModel,
     UserProfileViewModel model)
 {
     _model          = model;
     _userModel      = userModel;
     _userRepo       = userRepo;
     _mapper         = mapper;
     _playerRepo     = playerRepo;
     _cookiesManager = cookiesManager;
 }