public async Task UpdateProfileAsync(User_UpdateProfile_Schema model) { await _updateProfile.ExecuteReturnLessAsync(model); }
public async Task <IActionResult> EditProfile([FromBody] User_Update_BindingModel collection) { HeaderValidator(collection); try { var fileName = string.Empty; var model = _mapper.Map <Void_Schema>(collection); var user = await _userService.GetAsync(model); switch (model.StatusCode) { case 400: return(BadRequest(_stringLocalizer[SharedResource.AuthenticationFailed])); case 405: return(BadRequest(_stringLocalizer[SharedResource.DeviceIsNotActive])); case 410: return(BadRequest(_stringLocalizer[SharedResource.UserIsNotActive])); } if (collection.Avatar != null) { using (var memoryStream = new MemoryStream()) { await collection.Avatar.CopyToAsync(memoryStream); if (memoryStream.ToArray().Length == 0) { return(BadRequest(_stringLocalizer["FileHasNoContent"])); } if (memoryStream.ToArray().Length > int.Parse(AppSettings.AvatarSize) * 1024) { return(BadRequest(_stringLocalizer["FileSizeIsTooMuch"])); } var image = new Bitmap(memoryStream); if (!ImageFormats.Contains(image.RawFormat)) { return(BadRequest(_stringLocalizer["WrongFileType"])); } var avatarResolution = AppSettings.AvatarResolution.Split('x'); if (image.Width * image.Height > int.Parse(avatarResolution[0]) * int.Parse(avatarResolution[1])) { return(BadRequest(_stringLocalizer["FileResolutionIsTooMuch"])); } if (!Directory.Exists(AppSettings.FilePath)) { Directory.CreateDirectory(AppSettings.FilePath); } if (string.IsNullOrWhiteSpace(user.Avatar)) { fileName = $"{user.Username}_001"; } else { var avatarArray = user.Username.Split('_'); var avatarNo = int.Parse(avatarArray[1]); fileName = (++avatarNo).ToString(); for (var index = 0; index < (3 - avatarNo.ToString().Length); index++) { fileName = "0" + fileName; } fileName = $"{user.Username}_{fileName}"; } image.Save($@"{AppSettings.FilePath}\{fileName}.jpeg", ImageFormat.Jpeg); } } var editModel = new User_UpdateProfile_Schema { Token = collection.Token, DeviceId = collection.DeviceId, Avatar = $"{fileName}.jpeg", Nickname = collection.Nickname, BirthDate = collection.BirthDate.ToDateTime(null) }; await _userService.UpdateProfileAsync(editModel); switch (model.StatusCode) { case 200: return(Ok()); } } catch (Exception ex) { await _exceptionService.InsertAsync(ex, URL, IP); } return(InternalServerError()); }