Ejemplo n.º 1
0
        public async Task <IActionResult> UploadAvatar(UserAvatarModel model, IFormFile uploadedFile)
        {
            if (!_workContext.CurrentUser.IsRegistered())
            {
                return(Challenge());
            }

            if (!_userSettings.AllowUsersToUploadAvatars)
            {
                return(RedirectToRoute("UserInfo"));
            }

            var user = _workContext.CurrentUser;

            if (ModelState.IsValid)
            {
                try
                {
                    var userAvatar = await _pictureService.GetPictureById(await _genericAttributeService.GetAttributeAsync <int>(user,
                                                                                                                                 UserDefaults.AvatarPictureIdAttribute));

                    if (!string.IsNullOrEmpty(uploadedFile?.FileName))
                    {
                        var avatarMaxSize = _userSettings.AvatarMaximumSizeBytes;
                        if (uploadedFile.Length > avatarMaxSize)
                        {
                            throw new DefaultException($"Maximum avatar size is {avatarMaxSize} bytes.");
                        }

                        var userPictureBinary = await _pictureService.GetDownloadBits(uploadedFile);

                        userAvatar = userAvatar != null
                            ? await _pictureService.UpdatePicture(userAvatar.Id, userPictureBinary, uploadedFile.ContentType, null)
                            : await _pictureService.InsertPicture(userPictureBinary, uploadedFile.ContentType, null);
                    }

                    var userAvatarId = 0;
                    if (userAvatar != null)
                    {
                        userAvatarId = userAvatar.Id;
                    }

                    await _genericAttributeService.SaveAttributeAsync(user, UserDefaults.AvatarPictureIdAttribute, userAvatarId);

                    model.AvatarUrl = _pictureService.GetPictureUrl(
                        await _genericAttributeService.GetAttributeAsync <int>(user,
                                                                               UserDefaults.AvatarPictureIdAttribute), _mediaSettings.AvatarPictureSize, false);

                    return(View(model));
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                }
            }

            model = await _userAccountModelFactory.PrepareUserAvatarModel(model);

            return(View(model));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> RemoveAvatar(UserAvatarModel model)
        {
            if (!_workContext.CurrentUser.IsRegistered())
            {
                return(Challenge());
            }

            if (!_userSettings.AllowUsersToUploadAvatars)
            {
                return(RedirectToRoute("UserInfo"));
            }

            var user = _workContext.CurrentUser;

            var userAvatar = await _pictureService.GetPictureById(await _genericAttributeService.GetAttributeAsync <int>(user,
                                                                                                                         UserDefaults.AvatarPictureIdAttribute));

            if (userAvatar != null)
            {
                await _pictureService.DeletePicture(userAvatar);
            }

            await _genericAttributeService.SaveAttributeAsync(user, UserDefaults.AvatarPictureIdAttribute, 0);

            return(RedirectToRoute("UserAvatar"));
        }
Ejemplo n.º 3
0
        public PostModel getPostModel(string postId, string loginedUserId)
        {
            Post post = postDao.getPostById(postId);

            User            user       = userDao.getUserByPostId(post.id);
            UserAvatarModel userOfPost = new UserAvatarModel()
            {
                Id = user.id, Username = user.username, Avatar = user.avatar
            };
            List <CommentModel> top3CommentModels = commentDao.getAllCommentModelsOfPost(post.id);
            int    numberOfLikes = favoriteDao.getNumberOfLikesInPost(post.id);
            string timeAgo       = DateTimeUtils.getTimeAgo(post.time.GetValueOrDefault());
            bool   isLike        = favoriteDao.isLikeByUser(loginedUserId, post.id);

            PostModel postModel = new PostModel()
            {
                UserOfPost        = userOfPost,
                PostId            = post.id,
                PostContent       = post.content,
                PostImage         = post.image,
                Top3CommentModels = top3CommentModels,
                NumberLikes       = numberOfLikes,
                Time                = post.time,
                TimeAgo             = timeAgo,
                IsLikeByLoginedUser = isLike
            };

            return(postModel);
        }
Ejemplo n.º 4
0
        public async Task <UserAvatarModel> PrepareUserAvatarModel(UserAvatarModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            model.AvatarUrl = _pictureService.GetPictureUrl(await _genericAttributeService.GetAttributeAsync <int>(_workContext.CurrentUser,
                                                                                                                   UserDefaults.AvatarPictureIdAttribute), _mediaSettings.AvatarPictureSize, false);

            return(model);
        }
        public async Task <IActionResult> UpdatePersonAvatar([FromForm] UserAvatarModel model)
        {
            try {
                if (ModelState.IsValid)
                {
                    var requestHeaders = HttpContext.Request.Headers;
                    int userId         = 0;
                    if (requestHeaders.TryGetValue("Authorization", out StringValues token))
                    {
                        userId = JwtService.GetUserIdFromToken(JwtService.DecodeToken(token.ToString()));
                        if (userId < 1)
                        {
                            return(Unauthorized());
                        }
                    }
                    else
                    {
                        return(Unauthorized());
                    }
                    byte[] avatarImage;
                    using (var memoryStream = new MemoryStream()) {
                        await model.AvatarImage.CopyToAsync(memoryStream);

                        avatarImage = memoryStream.ToArray();
                    }
                    string guid = Guid.NewGuid().ToString();
                    string mime = model.AvatarImage.ContentType.Contains("/") ?
                                  model.AvatarImage.ContentType.Split("/")[1] :
                                  model.AvatarImage.ContentType;
                    string fileName = $"{guid}.{mime}";
                    string realPath;
                    try {
                        realPath = _personLogic.SavePersonsAvatar(fileName, avatarImage, userId);
                    } catch (Exception e) {
                        return(StatusCode(500, e));
                    }
                    if (string.IsNullOrWhiteSpace(realPath))
                    {
                        return(BadRequest());
                    }

                    return(Ok(realPath));
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            } catch (Exception e) {
                return(BadRequest(e));
            }
        }
Ejemplo n.º 6
0
        private void SetText(UserAvatarModel context, IUserIdentity userIdentity)
        {
            if (TeamCodingPackage.Current.Settings.UserSettings.UserTabDisplay == UserSettings.UserDisplaySetting.Colour)
            {
                context.Letter = null;
            }
            else
            {
                var firstLetter = (userIdentity.Id)[0];
                context.Letter = firstLetter;

                context.LetterBrush = VisuallyDistinctColours.GetTextBrushFromBackgroundColour(UserColours.GetUserColour(userIdentity));
            }
        }
Ejemplo n.º 7
0
 private void SetImageSource(UserAvatarModel context, IUserIdentity userIdentity)
 {
     if (TeamCodingPackage.Current.Settings.UserSettings.UserTabDisplay == UserSettings.UserDisplaySetting.Avatar)
     {
         if (userIdentity.ImageBytes != null)
         {
             using (var MS = new MemoryStream(userIdentity.ImageBytes))
             {
                 var bitmap = new BitmapImage();
                 bitmap.BeginInit();
                 bitmap.StreamSource = MS;
                 bitmap.CacheOption  = BitmapCacheOption.OnLoad;
                 bitmap.EndInit();
                 context.AvatarImageSource = UrlImages[userIdentity.ImageUrl] = bitmap;
             }
         }
         else if (userIdentity.ImageUrl != null)
         {
             if (UrlImages.ContainsKey(userIdentity.ImageUrl))
             {
                 context.AvatarImageSource = UrlImages[userIdentity.ImageUrl];
             }
             else
             {
                 ThreadHelper.JoinableTaskFactory.RunAsync(async() =>
                 {
                     try
                     {
                         var request = await TeamCodingPackage.Current.HttpClient.GetAsync(userIdentity.ImageUrl);
                         if (!request.IsSuccessStatusCode)
                         {
                             return;
                         }
                         var imageStream           = await request.Content.ReadAsStreamAsync();
                         context.AvatarImageSource = UrlImages[userIdentity.ImageUrl] = BitmapFrame.Create(imageStream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
                     }
                     catch (Exception ex) when(!System.Diagnostics.Debugger.IsAttached)
                     {
                         TeamCodingPackage.Current.Logger.WriteError(ex);
                     }
                 });
             }
         }
     }
     else
     {
         context.AvatarImageSource = null;
     }
 }
Ejemplo n.º 8
0
        public ActionResult Index()
        {
            LoginedUser loginedUser = getUserInSession();

            UserAvatarModel userAvatarModel = new UserAvatarModel()
            {
                Id = loginedUser.Id, Avatar = loginedUser.Avatar, Username = loginedUser.UserName
            };

            NewFeedModel model = newFeedService.getNewFeedModel(loginedUser.Id);

            model.UserAvatar = userAvatarModel;


            return(View(model));
        }
Ejemplo n.º 9
0
        public virtual IActionResult Avatar()
        {
            if (!_workContext.CurrentUser.IsRegistered())
            {
                return(Challenge());
            }

            if (!_userSettings.AllowUsersToUploadAvatars)
            {
                return(RedirectToRoute("UserInfo"));
            }

            var model = new UserAvatarModel();

            model = _userModelFactory.PrepareUserAvatarModel(model);
            return(View(model));
        }
Ejemplo n.º 10
0
        public List <UserAvatarModel> getAllUnFollowUser(string userId)
        {
            List <UserAvatarModel> userAvatars = new List <UserAvatarModel>();
            List <User>            users       = userDao.getAllUnFollowUsers(userId);

            foreach (User user in users)
            {
                string          relationshipStatus = getRelationship(userId, user.id);
                UserAvatarModel userAvatar         = new UserAvatarModel()
                {
                    Id       = user.id, Avatar = user.avatar,
                    Username = user.username, RelationshipStatus = relationshipStatus
                };
                userAvatars.Add(userAvatar);
            }

            return(userAvatars);
        }
Ejemplo n.º 11
0
        public UserAvatarModel CreateUserAvatarModel(IUserIdentity userIdentity)
        {
            if (UserModels.TryGetValue(userIdentity.Id, out var context))
            {
                return(context);
            }

            context = new UserAvatarModel()
            {
                ToolTip = (userIdentity.DisplayName ?? userIdentity.Id),
                Tag     = userIdentity.Id
            };
            context.BorderBrush = context.BackgroundBrush = UserColours.GetUserBrush(userIdentity);
            SetContextAccordingToDisplaySettings(context, userIdentity);

            UserModels.Add(userIdentity.Id, context);

            return(context);
        }
Ejemplo n.º 12
0
 private void SetImageSource(UserAvatarModel context, IUserIdentity userIdentity)
 {
     if (TeamCodingPackage.Current.Settings.UserSettings.UserTabDisplay == UserSettings.UserDisplaySetting.Avatar)
     {
         if (userIdentity.ImageBytes != null)
         {
             using (var MS = new MemoryStream(userIdentity.ImageBytes))
             {
                 var bitmap = new BitmapImage();
                 bitmap.BeginInit();
                 bitmap.StreamSource = MS;
                 bitmap.CacheOption  = BitmapCacheOption.OnLoad;
                 bitmap.EndInit();
                 context.AvatarImageSource = UrlImages[userIdentity.ImageUrl] = bitmap;
             }
         }
         else if (userIdentity.ImageUrl != null)
         {
             if (UrlImages.ContainsKey(userIdentity.ImageUrl))
             {
                 context.AvatarImageSource = UrlImages[userIdentity.ImageUrl];
             }
             else
             {
                 ThreadHelper.JoinableTaskFactory.RunAsync(async() =>
                 {
                     try
                     {
                         context.AvatarImageSource = await GetImageFromUrl(userIdentity.ImageUrl);
                     }
                     catch (Exception ex) when(!System.Diagnostics.Debugger.IsAttached)
                     {
                         TeamCodingPackage.Current.Logger.WriteError(ex);
                     }
                 });
             }
         }
     }
     else
     {
         context.AvatarImageSource = null;
     }
 }
Ejemplo n.º 13
0
        public List <PostModel> getPostModelsForNewFeed(string id)
        {
            List <PostModel> postModelList = new List <PostModel>();

            List <User> friends = userDao.getAllFriends(id);

            //loop each friend to get their posts
            foreach (User friend in friends)
            {
                UserAvatarModel userOfPost = new UserAvatarModel()
                {
                    Id = friend.id, Username = friend.username, Avatar = friend.avatar
                };
                Post latestPost = postDao.getLatestPostOfUser(friend.id);
                if (latestPost != null)
                {
                    List <CommentModel> top3CommentModels = commentDao.getTop3CommentModels(latestPost.id);
                    int    numberOfLikes = favoriteDao.getNumberOfLikesInPost(latestPost.id);
                    string timeAgo       = DateTimeUtils.getTimeAgo(latestPost.time.GetValueOrDefault());
                    bool   isLike        = favoriteDao.isLikeByUser(id, latestPost.id);

                    PostModel postModel = new PostModel()
                    {
                        UserOfPost        = userOfPost,
                        PostId            = latestPost.id,
                        PostContent       = latestPost.content,
                        PostImage         = latestPost.image,
                        Top3CommentModels = top3CommentModels,
                        NumberLikes       = numberOfLikes,
                        Time                = latestPost.time,
                        TimeAgo             = timeAgo,
                        IsLikeByLoginedUser = isLike
                    };

                    postModelList.Add(postModel);
                }
            }


            postModelList.Sort();
            return(postModelList);
        }
Ejemplo n.º 14
0
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            LoginedUser user = (LoginedUser)Session[CommonConstant.USER_SESSION];

            if (user == null || (user.Role != CommonConstant.ROLE_USER && user.Role != CommonConstant.ROLE_ADMIN))
            {
                filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(
                                                                     new { controller = "Login", action = "Index" }));
            }
            else
            {
                this.UserAvatar = new UserAvatarModel()
                {
                    Id = user.Id, Avatar = user.Avatar, Username = user.UserName
                };
                this.ViewBag.UserAvatar = this.UserAvatar;
            }


            base.OnActionExecuting(filterContext);
        }
Ejemplo n.º 15
0
 private void SetContextAccordingToDisplaySettings(UserAvatarModel context, IUserIdentity userIdentity)
 {
     SetText(context, userIdentity);
     SetImageSource(context, userIdentity);
 }
Ejemplo n.º 16
0
        public virtual IActionResult UploadAvatar(UserAvatarModel model, IFormFile uploadedFile)
        {
            if (!_workContext.CurrentUser.IsRegistered())
            {
                return(Challenge());
            }

            if (!_userSettings.AllowUsersToUploadAvatars)
            {
                return(RedirectToRoute("UserInfo"));
            }

            var user = _workContext.CurrentUser;

            if (ModelState.IsValid)
            {
                try
                {
                    var userAvatar = _pictureService.GetPictureById(_genericAttributeService.GetAttribute <int>(user, NopUserDefaults.AvatarPictureIdAttribute));
                    if (uploadedFile != null && !string.IsNullOrEmpty(uploadedFile.FileName))
                    {
                        var avatarMaxSize = _userSettings.AvatarMaximumSizeBytes;
                        if (uploadedFile.Length > avatarMaxSize)
                        {
                            throw new NopException(string.Format(_localizationService.GetResource("Account.Avatar.MaximumUploadedFileSize"), avatarMaxSize));
                        }

                        var userPictureBinary = _downloadService.GetDownloadBits(uploadedFile);
                        if (userAvatar != null)
                        {
                            userAvatar = _pictureService.UpdatePicture(userAvatar.Id, userPictureBinary, uploadedFile.ContentType, null);
                        }
                        else
                        {
                            userAvatar = _pictureService.InsertPicture(userPictureBinary, uploadedFile.ContentType, null);
                        }
                    }

                    var userAvatarId = 0;
                    if (userAvatar != null)
                    {
                        userAvatarId = userAvatar.Id;
                    }

                    _genericAttributeService.SaveAttribute(user, NopUserDefaults.AvatarPictureIdAttribute, userAvatarId);

                    model.AvatarUrl = _pictureService.GetPictureUrl(
                        _genericAttributeService.GetAttribute <int>(user, NopUserDefaults.AvatarPictureIdAttribute),
                        _mediaSettings.AvatarPictureSize,
                        false);
                    return(View(model));
                }
                catch (Exception exc)
                {
                    ModelState.AddModelError("", exc.Message);
                }
            }

            //If we got this far, something failed, redisplay form
            model = _userModelFactory.PrepareUserAvatarModel(model);
            return(View(model));
        }