Beispiel #1
0
        public async Task <IActionResult> ShowProfile(string id)
        {
            var user = await userManager.FindByIdAsync(id);

            if (user != null)
            {
                var model = new ShowProfileViewModel()
                {
                    UserId    = user.Id,
                    UserName  = user.UserName,
                    Bio       = user.Bio,
                    PhotoPath = user.PhotoPath,
                    Feed      = mumblrRepository.getFeed(id)
                };

                return(View(model));
            }
            else
            {
                ViewBag.ErrorMessage = "The requested profile could not be found. It may have been deleted";
                return(View("NotFound"));
            }
        }
Beispiel #2
0
        public ActionResult Show(string userId)
        {
            var user = db.Profiles
                       .Include(p => p.County)
                       .Include(p => p.City)
                       .Include(p => p.Albums)
                       .Where(p => p.Id == userId)
                       .FirstOrDefault();

            if (user == null)
            {
                return(View("NotFound"));
            }

            var model = new ShowProfileViewModel();

            model.Id                = user.Id;
            model.FirstName         = user.FirstName;
            model.LastName          = user.LastName;
            model.ProfilePhotoId    = user.ProfilePhotoId;
            model.CountyName        = user.County != null ? user.County.Name : "Not available";
            model.CityName          = user.City != null ? user.City.Name : "Not available";
            model.GenderType        = user.IsMale ? "Male" : "Female";
            model.Birthdate         = user.Birthday;
            model.IsAvailableToView = true;

            foreach (var album in model.Albums)
            {
                album.FirstPhotoId = db.Photos.Where(u => u.AlbumId == album.Id)
                                     .Select(u => u.Id)
                                     .FirstOrDefault();
                album.NumberOfPhotos = db.Photos.Where(u => u.AlbumId == album.Id)
                                       .Count();
            }

            return(View("~/Views/Profile/Show.cshtml", model));
        }
Beispiel #3
0
        public ActionResult Show(string userId)
        {
            var user = db.Profiles
                       .Include(p => p.County)
                       .Include(p => p.City)
                       .Include(p => p.Albums)
                       .Where(p => p.Id == userId && !p.IsDeletedByAdmin)
                       .FirstOrDefault();

            if (user == null)
            {
                return(View("NotFound"));
            }

            var model = new ShowProfileViewModel();

            var currentUserId = User.Identity.GetUserId();
            //verificam daca user-ul curent(autentificat) este prieten cu cel al carui profil incercam sa-l accesam
            var isFriendWith = db.Friends.Any(f => f.ReceiverId == currentUserId && f.SenderId == userId ||
                                              f.ReceiverId == userId && f.SenderId == currentUserId);

            if (!user.IsPublic &&         //daca user-ul al carui profil dorim sa-l accesam este privat
                !isFriendWith &&          //si nu suntem prieteni deja
                currentUserId != user.Id) //si cazul in care nu cumva ne uitam chiar pe profilul nostru
            {                             //atunci vom afisa doar un set limitate de date despre acel utilizator
                model.Id             = user.Id;
                model.FirstName      = user.FirstName;
                model.LastName       = user.LastName;
                model.ProfilePhotoId = user.ProfilePhotoId;
            }
            else
            {
                model.Id             = user.Id;
                model.FirstName      = user.FirstName;
                model.LastName       = user.LastName;
                model.ProfilePhotoId = user.ProfilePhotoId;
                model.CountyName     = user.County != null ? user.County.Name : "Not available";
                model.CityName       = user.City != null ? user.City.Name : "Not available";
                model.GenderType     = user.IsMale ? "Male" : "Female";
                model.Birthdate      = user.Birthday;
                model.Albums         = user.Albums.Select(album => new ShowAlbumViewModel
                {
                    Id             = album.Id,
                    Name           = album.Name,
                    NumberOfPhotos = album.Photos.Count,
                    FirstPhotoId   = album.Photos.FirstOrDefault()?.Id,
                    IsEditable     = false
                })
                                       .ToList();

                model.IsAvailableToView = true;

                /*foreach (var album in model.Albums)
                 * {
                 *  album.FirstPhotoId = db.Photos.Where(u => u.AlbumId == album.Id)
                 *                                .Select(u => u.Id)
                 *                                .FirstOrDefault();
                 *  album.NumberOfPhotos = db.Photos.Where(u => u.AlbumId == album.Id)
                 *                                  .Count();
                 * }*/
            }

            var isPendingForUser = db.FriendRequests
                                   .Any(u => u.RequestedProfileId == userId && u.RequesterProfileId == currentUserId && u.Status == (int)FriendRequestStatusTypes.Pending ||
                                        u.RequestedProfileId == currentUserId && u.RequesterProfileId == userId && u.Status == (int)FriendRequestStatusTypes.Pending);

            var isRejectedByUser = db.FriendRequests
                                   .Any(u => u.RequestedProfileId == userId && u.RequesterProfileId == currentUserId && u.Status == (int)FriendRequestStatusTypes.Rejected);

            model.CanSendFriendRequest = currentUserId != userId &&
                                         !isFriendWith &&
                                         !isPendingForUser && //exista o cerere de prietenie intre noi in asteptare (de a fi acceptata sau nu)
                                         !isRejectedByUser; //daca persoana pe care vrem sa o vedem ne-a refuzat cererea de prietenie, nu vom mai putem trimite alta
            model.IsPendingForUser = isPendingForUser;

            return(View(model));
        }