public async Task <IHttpActionResult> PostUser(UserRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (request.ImageArray != null && request.ImageArray.Length > 0) { var stream = new MemoryStream(request.ImageArray); var guid = Guid.NewGuid().ToString(); var file = string.Format("{0}.jpg", guid); var folder = "~/Content/Users"; var fullPath = string.Format("{0}/{1}", folder, file); var response = FilesHelper.UploadPhoto(stream, folder, file); if (response) { request.Picture = fullPath; } } var user = ToUser(request); _db.Users.Add(user); await _db.SaveChangesAsync(); CreateUserAsp(request.Email, "User", request.Password); return(CreatedAtRoute("DefaultApi", new { id = user.UserId }, user)); }
public async Task <IHttpActionResult> PutUser(int id, UserRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != request.UserId) { return(BadRequest()); } var oldUser = await _db.Users.FindAsync(id); if (oldUser == null) { return(NotFound()); } var oldEmail = oldUser.Email; var isEmailChanged = oldUser.Email.ToLower() != request.Email.ToLower(); if (request.ImageArray != null && request.ImageArray.Length > 0) { var stream = new MemoryStream(request.ImageArray); var guid = Guid.NewGuid().ToString(); var file = string.Format("{0}.jpg", guid); var folder = "~/Content/Users"; var fullPath = string.Format("{0}/{1}", folder, file); var response = FilesHelper.UploadPhoto(stream, folder, file); if (response) { request.Picture = fullPath; } } else { request.Picture = oldUser.Picture; } oldUser.Email = request.Email; oldUser.FavoriteTeamId = request.FavoriteTeamId; oldUser.FirstName = request.FirstName; oldUser.LastName = request.LastName; oldUser.NickName = request.NickName; oldUser.Picture = request.Picture; _db.Entry(oldUser).State = EntityState.Modified; try { await _db.SaveChangesAsync(); if (isEmailChanged) { UpdateUserName(oldEmail, request.Email); } return(Ok(oldUser)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }