public async Task <PatchResponse> Patch([FromBody] PatchRequest request) { var response = new PatchResponse(); if (new EmailAddressAttribute().IsValid(request.Email)) { var passwordBytes = System.Text.Encoding.UTF8.GetBytes(request.Password); var user = await _shopoContext.Users.FirstOrDefaultAsync(u => u.Email == request.Email && u.Password == passwordBytes); if (user != null) { if (request.ChangedPassword != "") { var encryptedPassword = System.Text.Encoding.UTF8.GetBytes(request.ChangedPassword); user.Password = encryptedPassword; response.PasswordChanged = true; } else { user.Activated = (bool)request.Activate; response.UserActivatedDeactivated = true; } await _shopoContext.SaveChangesAsync(); response.User = user; } } else { BadRequest(); } return(response); }
/// <summary> /// Called when the patch thread is complete. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void PatchWorker_OnComplete(object sender, PatchResponse e) { if (progressBar.InvokeRequired) { progressBar.Invoke(new MethodInvoker(delegate { PatchWorker_OnComplete(sender, e); })); return; } if (e.Errors.Count > 0) { if (e.FilesPatched > 0) { ErrorMessage(Properties.Resources.ErrorModalPatchPartialFail, string.Join("\r\n", e.Errors)); } else { ErrorMessage(Properties.Resources.ErrorModalPatchFullFail, string.Join("\r\n", e.Errors)); } progressBar.Visible = false; labelCurrentStatus.Visible = false; ResetForm(); EnableForm(true); return; } progressBar.Maximum = 100; progressBar.Value = 100; labelCurrentStatus.Text = Properties.Resources.StatusPatchComplete; ResetForm(); EnableForm(true); }