コード例 #1
0
        public async Task <IWriterResult> CreateAvatarImage(UpdateAvatarModel model)
        {
            try
            {
                foreach (var pixel in model.Pixels)
                {
                    if (!Constant.IsValidPixel(pixel.X, pixel.Y, 10, 10, pixel.Color))
                    {
                        return(new WriterResult(false, $"Invalid pixel, X:{pixel.X}, Y:{pixel.Y}, Color:{pixel.Color}"));
                    }
                }

                using (var bitmapSmall = new Bitmap(10, 10))
                {
                    foreach (var pixel in model.Pixels)
                    {
                        bitmapSmall.SetPixel(pixel.X, pixel.Y, ColorTranslator.FromHtml(pixel.Color));
                    }
                    bitmapSmall.Save(Path.Combine(model.AvatarPath, $"{model.UserName}.png"), System.Drawing.Imaging.ImageFormat.Png);
                }
                return(new WriterResult(true));
            }
            catch (Exception)
            {
                return(new WriterResult(false, $"Failed to build avatar, unknown error"));
            }
        }
コード例 #2
0
        public async Task <IActionResult> UpdateAvatarUser([FromForm] UpdateAvatarModel updatedUser)
        {
            var    headerValues = Request.Headers["Authorization"];
            string userId       = Authenticate.DecryptToken(headerValues.ToString());
            var    user         = await _userService.GetAsync(userId);

            updatedUser.Id = userId;


            await _userService.UpdateAvatarAsync(updatedUser);

            ///Return updated user to update state in react
            var returnedUser = (await _userService.GetAsync(userId)).Adapt <UserViewModel>();
            var provinces    = await _provinceService.GetAllAsync();

            var wards = await _wardService.GetByDistrictIdAsync(returnedUser.DistrictId);

            var districts = await _districtService.GetByProvinceIdAsync(returnedUser.ProvinceId);

            if (returnedUser.ProvinceId != null)
            {
                returnedUser.ProvinceName = provinces.Where(x => x.Id == returnedUser.ProvinceId).FirstOrDefault().Name;
                returnedUser.DistrictName = districts.Where(x => x.Id == returnedUser.DistrictId).FirstOrDefault().Name;
                returnedUser.WardName     = wards.Where(x => x.Id == returnedUser.WardId).FirstOrDefault().Name;
            }
            returnedUser.ImgUrl   = returnedUser.ImgUrl;
            returnedUser.BirthDay = Convert.ToDateTime(returnedUser.BirthDay).ToLocalTime().ToString("yyyy-MM-dd");
            return(Ok(returnedUser));
        }
コード例 #3
0
        public async Task  UpdateAvatarAsync(UpdateAvatarModel updatedUser)
        {
            var filter = Builders <User> .Filter.Eq(u => u.Id, updatedUser.Id);

            var update = Builders <User> .Update.Set(u => u.ImgUrl, updatedUser.ImgUrl);

            await _users.UpdateOneAsync(filter, update);
        }
コード例 #4
0
        public async Task <ActionResult> UpdateAvatarModal(UpdateAvatarModel model)
        {
            var userId = User.Identity.GetUserId <int>();

            model.UserName   = User.Identity.Name;
            model.AvatarPath = Server.MapPath("~/Content/Images/Avatar");
            var result = await ImageWriter.CreateAvatarImage(model);

            if (result.Success)
            {
                await AwardWriter.AddUserAward(new AddUserAwardModel
                {
                    UserId = userId,
                    Type   = Enums.AwardType.Avatar
                });
            }
            return(Json(result));
        }
コード例 #5
0
        public async Task <ActionResult> UpdateAvatar([FromForm] UpdateAvatarModel updateAvatarModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrors()));
            }
            try
            {
                ApplicationUser curUser = await _userManager.GetUserAsync(HttpContext.User);

                string strPicture = UploadFileToCloudinary.UploadImage(updateAvatarModel.FileAvatar);
                curUser.Avatar = strPicture;
                await _userManager.UpdateAsync(curUser);

                return(Ok(true));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
コード例 #6
0
 public bool UpdateAvatar(UpdateAvatarModel updateAvatarModel)
 {
     var prof = db.UserProfiles.Where(user => user.UserProfileId == updateAvatarModel.UserProfileID).First();
     if (prof == null) return false;
     prof.Avatar = updateAvatarModel.FilePath + updateAvatarModel.FileName;
     db.SaveChanges();
     return true;
 }