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")); } }
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)); }
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); }
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)); }
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)); } }
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; }