Avatar
This commit is contained in:
parent
3d0632303d
commit
fbd352e788
18 changed files with 179 additions and 55 deletions
|
|
@ -138,40 +138,34 @@ namespace Yavsc.WebApi.Controllers
|
|||
return Ok(user);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Actually only updates the user's name.
|
||||
/// </summary>
|
||||
/// <param name="me">MyUpdate containing the new user name </param>
|
||||
/// <returns>Ok when all is ok.</returns>
|
||||
[HttpPut("~/api/me")]
|
||||
public async Task<IActionResult> UpdateMe(MyUpdate me)
|
||||
{
|
||||
var ko = new BadRequestObjectResult(
|
||||
new { error = "Specify some valid update request." });
|
||||
if (me==null) return ko;
|
||||
if (me.Avatar==null && me.UserName == null) return ko;
|
||||
if (!ModelState.IsValid) return new BadRequestObjectResult(
|
||||
new { error = "Specify some valid user update request." });
|
||||
var user = await _userManager.FindByIdAsync(User.GetUserId());
|
||||
|
||||
if (me.UserName !=null) {
|
||||
var result = await _userManager.SetUserNameAsync(user, me.UserName);
|
||||
}
|
||||
if (me.Avatar!=null) {
|
||||
user.Avatar = me.Avatar;
|
||||
var result = await _userManager.UpdateAsync(user);
|
||||
if (!result.Succeeded)
|
||||
{
|
||||
AddErrors("Avatar", result);
|
||||
return new BadRequestObjectResult(ModelState);
|
||||
}
|
||||
}
|
||||
return Ok();
|
||||
var result = await _userManager.SetUserNameAsync(user, me.UserName);
|
||||
if (result.Succeeded)
|
||||
return Ok();
|
||||
else return new BadRequestObjectResult(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the avatar
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("~/api/setavatar")]
|
||||
public async Task<IActionResult> SetAvatar()
|
||||
{
|
||||
var root = User.InitPostToFileSystem(null);
|
||||
var user = await _userManager.FindByIdAsync(User.GetUserId());
|
||||
long usage = user.DiskUsage;
|
||||
if (Request.Form.Files.Count!=1)
|
||||
return new BadRequestResult();
|
||||
var info = user.ReceiveUserFile(root, user.DiskQuota, ref usage, Request.Form.Files[0]);
|
||||
user.DiskUsage = usage;
|
||||
var info = user.ReceiveAvatar(Request.Form.Files[0]);
|
||||
await _userManager.UpdateAsync(user);
|
||||
return Ok(info);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,13 +53,10 @@ namespace Yavsc.ApiControllers
|
|||
var user = dbContext.Users.Single(
|
||||
u => u.Id == User.GetUserId()
|
||||
);
|
||||
var quota = user.DiskQuota;
|
||||
var usage = user.DiskUsage;
|
||||
|
||||
foreach (var f in Request.Form.Files)
|
||||
{
|
||||
var item = user.ReceiveUserFile(root,quota,ref usage,f);
|
||||
user.DiskUsage = usage;
|
||||
var item = user.ReceiveUserFile(root, f);
|
||||
dbContext.SaveChanges();
|
||||
yield return item;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue