Beispiel #1
0
        public async Task <IActionResult> ChangeAvatar([FromBody] FileBase64 file)
        {
            var bytes = Convert.FromBase64String(file.Base64File);

            using (MemoryStream ms = new MemoryStream(bytes))
            {
                var formFile = new FormFile(ms, 0, ms.Length, "file", file.FileName)
                {
                    Headers = new HeaderDictionary
                    {
                        { "Content-Disposition", string.Format("attachment; filename={0})", file.FileName) },
                        { "Content-Type", "multipart/form-data" }
                    }
                };

                var userId = _authServices.GetUserId() ?? 0;
                if (userId == 0)
                {
                    return(BadRequest(MessageConstant.UserNotAllowed));
                }

                var userResponse = await _userDetailService.GetDetailByUserId(userId);

                if (userResponse.Success)
                {
                    AssignModelState();
                    var user = userResponse.Item;
                    try
                    {
                        if (!String.IsNullOrWhiteSpace(user.Avatar))
                        {
                            await _fileServices.DeleteAsync(user.Avatar);
                        }
                        var res = await _fileServices.UploadAsync(formFile);

                        user.Avatar = res.Item.Path;
                        var response = _userDetailService.Edit(user);
                        if (response.Success)
                        {
                            return(Ok(response.Item));
                        }

                        return(BadRequest(response.Message));
                    }
                    catch (Exception ex)
                    {
                        return(BadRequest(ex.Message));
                    }
                }
                ms.Dispose();
            }

            return(BadRequest("Error on Server"));
        }
Beispiel #2
0
        public async Task <IActionResult> ChangeAvatar(IFormFile file)
        {
            var userId = _auth.GetUserId() ?? 0;

            if (userId == 0)
            {
                return(BadRequest(MessageConstant.UserNotAllowed));
            }

            var userResponse = await _userDetailService.GetDetailByUserId(userId);

            if (userResponse.Success)
            {
                AssignModelState();
                var user = userResponse.Item;
                try
                {
                    if (!String.IsNullOrWhiteSpace(user.Avatar))
                    {
                        await _fileServices.DeleteAsync(user.Avatar);
                    }
                    var res = await _fileServices.UploadAsync(file);

                    user.Avatar = res.Item.Path;
                    var response = _userDetailService.Edit(user);
                    if (response.Success)
                    {
                        return(Ok(response.Item));
                    }

                    return(BadRequest(response.Message));
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(BadRequest(userResponse.Message));
        }
Beispiel #3
0
        // GET: DetaialUser
        public ActionResult Index()
        {
            var name = User.Identity.Name;

            var userLogged = _userService.GetUserByUserName(name);

            var details = _detailService.GetDetailByUserId(userLogged.Id);

            var profilPicture = _postService.GetPictureProfileFromPost(userLogged);

            var listPost = userLogged.Posts.OrderByDescending(x => x.DateOnPost);

            var viewListPost = new List <HomePostModel>();

            foreach (var post in listPost)
            {
                var pictureId = 0;
                int.TryParse(post.PictureId.ToString(), out pictureId);

                var commentsPost = new List <ViewModelComment>();

                foreach (var comment in post.Comments)
                {
                    var profilePicture = _postService.GetPictureProfileFromPost(_userService.GetUserByUserName(comment.Username));

                    commentsPost.Add(new ViewModelComment()
                    {
                        Username       = comment.Username,
                        Description    = comment.Description,
                        PictureProfile = Converts.ConvertByteArrToStringForImg(profilePicture)
                    });
                }

                var likesPost = new List <ViewModelLike>();

                foreach (var like in post.Likes)
                {
                    var pictureOfProfile = _postService.GetPictureProfileFromPost(_userService.GetUserByUserName(like.Username));

                    likesPost.Add(new ViewModelLike()
                    {
                        Username       = like.Username,
                        PictureProfile = Converts.ConvertByteArrToStringForImg(pictureOfProfile)
                    });
                }

                var pictureOfUser = _postService.GetPictureProfileFromPost(_userService.GetUserById(post.UserId));

                viewListPost.Add(new HomePostModel
                {
                    PostId          = post.Id,
                    UserName        = _userService.GetUserById(post.UserId).UserName,
                    PictureOfUser   = Converts.ConvertByteArrToStringForImg(pictureOfUser),
                    DiscriptionPost = post.Disctription,
                    DateOnPost      = Converts.CreateStringDate(post.DateOnPost),
                    PicturePost     = Converts.ConvertByteArrToStringForImg(_postService.GetPictureOnPost(pictureId)),
                    Likes           = likesPost,
                    Comments        = commentsPost
                });
            }

            var friendUser = userLogged.Friends;
            var listFriend = new List <FriendViewModel>();

            foreach (var friend in friendUser)
            {
                var pictureOfUser = _postService.GetPictureProfileFromPost(_userService.GetUserById(friend.Id));

                listFriend.Add(new FriendViewModel
                {
                    UserName    = friend.UserName,
                    PictureUser = Converts.ConvertByteArrToStringForImg(pictureOfUser),
                });
            }

            if (details == null)
            {
                var model = new UserDetailsViewModel()
                {
                    FirstName  = "",
                    LastName   = "",
                    Email      = userLogged.Email,
                    Adress     = "",
                    Age        = 0,
                    ImageBrand = "",
                    Friends    = listFriend,
                    Post       = viewListPost
                };

                return(View(model));
            }
            else
            {
                var model = new UserDetailsViewModel()
                {
                    FirstName  = details.FirstName,
                    LastName   = details.LastName,
                    Email      = userLogged.Email,
                    Adress     = details.Adress,
                    Age        = details.Age,
                    ImageBrand = Converts.ConvertByteArrToStringForImg(profilPicture),
                    Friends    = listFriend,
                    Post       = viewListPost
                };

                return(View(model));
            }
        }